Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
onegin88
4 / 1 / 0
Регистрация: 30.03.2013
Сообщений: 19
#1

удаление коментариев - C++

30.03.2013, 11:22. Просмотров 370. Ответов 5
Метки нет (Все метки)

Написать программу delete_comments, которая принимает на стандартный вход
программу на языке С++ и выводит в стандартный вывод текст этой программы,
удалив из него комментарии.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2013, 11:22     удаление коментариев
Посмотрите здесь:

C++ Удаление
C++ Удаление из строки
Удаление строки C++
C++ удаление списка в с++
C++ Удаление из строки
C++ Строки.Удаление .
Удаление из файла C++
C++ Удаление коментариев из файла с исходным кодом
C++ Удаление памяти
C++ удаление указателей
Удаление из S1 - S2 C++
Удаление пробелов C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BumerangSP
4284 / 1406 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
30.03.2013, 12:46     удаление коментариев #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
    string str;
    ifstream in("source.cpp");
    bool f = false;
    size_t pos(0);
    while(!in.eof())
    {
        getline(in,str);
        if (pos = str.find("/*") != std::string::npos || f)
        {
            f = true;
            size_t _pos = str.size();
            if (_pos = str.find("*/") != std::string::npos)
                f = false;
            str.resize((pos = str.find("/*")) != std::string::npos ? pos : _pos);
        }
        else
        {
            str.resize((pos = str.find("//")) != std::string::npos ? pos : str.size());
            cout<<str<<'\n';
        }
    }
    system("pause");
    return 0;
}
Tulosba
:)
Эксперт С++
4390 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
30.03.2013, 13:24     удаление коментариев #3
BumerangSP, а такую комбинацию выловит?
C++
1
f(); // comment /* comment 2 */
А еще можно на свой же исходник натравить
sandye51
программист С++
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
30.03.2013, 13:25     удаление коментариев #4
BumerangSP, программа, содержащая строку like этой
C++
1
std::cout << "//";
будет обработана вашим кодом некорректно
BumerangSP
4284 / 1406 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
01.04.2013, 01:43     удаление коментариев #5
Tulosba, неа, это очень простой пример, хотя замечание sandye51 упустил, это да.
Tulosba
:)
Эксперт С++
4390 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
01.04.2013, 07:39     удаление коментариев #6
BumerangSP, замечание sandye51 это, по сути, мое второе предложение.
Yandex
Объявления
01.04.2013, 07:39     удаление коментариев
Ответ Создать тему
Опции темы

Текущее время: 16:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru