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

Строки: удалить все символы, которые размещены между скобками - C++

Восстановить пароль Регистрация
 
KaMaKaDzA
0 / 0 / 0
Регистрация: 23.07.2013
Сообщений: 36
03.07.2014, 14:42     Строки: удалить все символы, которые размещены между скобками #1
Помогите пожалуйста. Без понятия как это сделать.

Удалить из заданной последовательности все символы которые размещены между скобками ("(...)"). Сами скобки так же должны быть удалены. Внутри каждой пары скобок других скобок нету.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.07.2014, 14:42     Строки: удалить все символы, которые размещены между скобками
Посмотрите здесь:

исключить те символы, которые находятся между скобками '(' ') C++
удалить из заданной строки все группы символов, расположенные между скобками, включая сами скобки C++
C++ Удалить в строке символов все символы в скобках вместе с самими скобками
исключить все символы между круглыми скобками, включая сами скобки C++
C++ Из заданной строки исключить символы равосположенные между скобками [ ]
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ilot
Модератор
Эксперт С++
1765 / 1140 / 221
Регистрация: 16.05.2013
Сообщений: 3,017
Записей в блоге: 5
Завершенные тесты: 1
03.07.2014, 15:39     Строки: удалить все символы, которые размещены между скобками #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
#include <iostream>
#include <string>
#include <algorithm>
class compare {
    int flag;
public:
    compare(): flag(0)
    {}
    bool operator()(const char& value) {
        if(value == '(')
            return ++flag;
        if(value == ')')
            return flag--;
        return flag;
    }
};
int main(){
    std::string str;
    std::cout << "Input string: " ;
    getline(std::cin, str);
    std::string::iterator it = std::remove_copy_if(str.begin(), str.end(), str.begin(), compare());
    std::cout << str.substr(0, distance(str.begin(), it)) << std::endl;
    return 0;
}
KaMaKaDzA
0 / 0 / 0
Регистрация: 23.07.2013
Сообщений: 36
03.07.2014, 16:58  [ТС]     Строки: удалить все символы, которые размещены между скобками #3
ругается на distance(str.begin(), it). Не знает откуда его брать.
Ilot
Модератор
Эксперт С++
1765 / 1140 / 221
Регистрация: 16.05.2013
Сообщений: 3,017
Записей в блоге: 5
Завершенные тесты: 1
03.07.2014, 17:10     Строки: удалить все символы, которые размещены между скобками #4
Добавьте заголовочник <iterator>
KaMaKaDzA
0 / 0 / 0
Регистрация: 23.07.2013
Сообщений: 36
03.07.2014, 19:49  [ТС]     Строки: удалить все символы, которые размещены между скобками #5
не помогло.

Добавлено через 1 час 32 минуты
Всё. Теперь работает. надо было добавить std::
Yandex
Объявления
03.07.2014, 19:49     Строки: удалить все символы, которые размещены между скобками
Ответ Создать тему
Опции темы

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