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

Удалить комментарии из строки - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вычислить значение функции http://www.cyberforum.ru/cpp-beginners/thread351404.html
помогити решить вот эти задачи мы недавно начели С и я в этом нулевой пока что зарание спасибо всем. Задача1. Даны три вещественных числа. Проверить: образуют ли данные числа возрастающую последовательность. Задача2. Задача3. буду очень благодарен за помощь
C++ Помогите с обучением С++ Если есть у кого небудь есть свободное время..прошу поучить меня С++ с нуля) http://www.cyberforum.ru/cpp-beginners/thread351354.html
C++ Указатель на массив char и прочее
Страуструп для проверки прочитанного в заданиях после одной из глав просит через typedef сделать пару объявлений и вот как делать некоторые из них я что-то не понял, в частности: Используйте typedef для определения типов: - указатель на массив char ... - массив из 7 указателей на int - указатель на массив из 7 указателей на int
C++ Даны вещественные массивы a[13] и k [13], для каждого массива определить...
Даны вещественные массивы a и k , для каждого массива определить минимальный положительный элемент и средне гармоническое всех отрицательных элементво массива.
C++ вычислить сумму элементов,расположенных между максимальным и минимальным элементом http://www.cyberforum.ru/cpp-beginners/thread351318.html
вычислить сумму элементов,расположенных между максимальным и минимальным элементом (первыми по порядку, если их нескглько) Если вычислить сумму не удается, выдать сообщерие с указанием причины.
C++ Русские буквы Ребят всем привет!!! Подскажите мне пожалуйста такую вещь,хочу в С++ чтобы на русском выводилось,компилирую в Dev C++,у меня каляки маляки выходят,то есть в компиляторе например пишу "Привет" в командной строке вижу "оыаотд" подробнее

Показать сообщение отдельно
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
15.09.2011, 13:52     Удалить комментарии из строки
villu, глюки из-за string::operator+= применительно к char.

Вот исправленный вариант.

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
string nocomment( char * str )
{
    int level = 0;
    string out;
 
    char prev = 0,
         buff[2] = {0, 0};
 
    for( char *p = str; *p; p++ )
    {
        //cout << '\n' << *p << ": ";
 
        if( *p == '/' )
        {
            if( prev == '*' ) // закрываюший коммент
            {
                if( !level )
                {
                   prev = 0;
                   //cout << "closing comment outside of comment area ";
                   out += "/";
                   continue;
                }
 
                level--;
                prev = 0;
 
                //cout << "closing comment. level is now " << level << ' ';
 
                continue;
            }
 
            prev = *p;
            continue;
        }
        else if( *p == '*' )
        {
            if( prev == '/' ) // открываюший коммент
            {
                level++;
 
                //cout << "opening comment. level is now " << level << ' ';
 
                prev = 0;
                continue;
            }
 
            prev = *p;
 
            //continue;
        }
 
        if( !level )
        {
            prev = *p;
            buff[0] = *p;
            out += buff;
        }
    }
 
    return out;
}
 
int main()
{
    cout << "output: " << nocomment( "Hello, /*world*/sailor! How /* is /* your /* comment */ */ doing?**/do/* */ you/***/ do?" )
         << '\n' << nocomment( "***/" ) <<
         '\n' << nocomment( "132/**/*/**/456789" );
 
    return 0;
}
Единственное - непонятно, что вы ожидаете увидеть в строке

/**/*/**/

Цвета:
Открывающий, закрывающий, закрывающий вне комментария, просто текст

Если я понял правильно, тогда будет так:

*/**/

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