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

Среди элементов строки убрать те которые находятся внутри скобок - C++

Восстановить пароль Регистрация
 
AlexProg
1 / 1 / 0
Регистрация: 03.11.2012
Сообщений: 52
02.12.2012, 19:27     Среди элементов строки убрать те которые находятся внутри скобок #1
Среди эллементов строки убрать те которые находятся внутри скобок . Н емогу понять как решить .
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2012, 19:27     Среди элементов строки убрать те которые находятся внутри скобок
Посмотрите здесь:

C++ Динамические двумерные массивы. Определить суму положительных элементов, которые находятся выше главной диагонали...
C++ строки.... вывести на экран все символы которые находятся во второй половине текста
Найти сумму и число элементов матрицы, которые находятся над главной диагональю и на ней C++
Вычислить и напечатать произведение первых 7 элементов и сумм следующих элементов, которые находятся на первых позициях C++
C++ Дано целочисленный одномерный массив А, состоящий из 14 элементов. Обчилслиты и напечатать сумму четных элементов, которые находятся на нечетных места
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MaRKerNSK
 Аватар для MaRKerNSK
24 / 11 / 1
Регистрация: 26.11.2012
Сообщений: 110
Записей в блоге: 2
02.12.2012, 19:35     Среди элементов строки убрать те которые находятся внутри скобок #2
Ну агоритм такой что выполнять цикл с переборкой символов. и если встретилась скобка , начать даление символов, или замещение их, пок ане встретиться скобка спереди
C++
1
2
3
4
5
6
7
8
9
10
11
12
//псевдо код
bool strDel=false;
for (int i=0; i<размер строки ; i++)
{
if (встретился "(" || встретиться ")")
    strDel = !strDel;
if (strDel)
  {
      Удалить символ
  }
 
}
AlexProg
1 / 1 / 0
Регистрация: 03.11.2012
Сообщений: 52
02.12.2012, 20:43  [ТС]     Среди элементов строки убрать те которые находятся внутри скобок #3
Вот у меня есть примерный код данной программы подкаректируйте пожалуйста
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
#include <iostream>
#include <string.h>
#include<conio.h>
 
//using namespace std;
 
int  main()
{int i;
char *s
    s=getStr;
int CNT=0;
bool flag=false;
while(s[cnt])
{
    cnt=0;
    flag=false;
    if(s[cnt]=='(')
        {
            putchar[s[cnt++]];
            flag=true;
    }
    if else (s[cnt]==')')
        {
            putchar[s[cnt]++];
            flag=false;
    }
    else if (!flag)
    {
        putchar[s[cnt]];
    else 
        cnt++;
    }
}
std::cout<<cnt<<std::endl;
getchar();
    getchar();
    return 0;
}
MaRKerNSK
 Аватар для MaRKerNSK
24 / 11 / 1
Регистрация: 26.11.2012
Сообщений: 110
Записей в блоге: 2
02.12.2012, 20:46     Среди элементов строки убрать те которые находятся внутри скобок #4
Что то у вас нагромождение)) =)
Buckstabue
 Аватар для Buckstabue
175 / 124 / 6
Регистрация: 12.01.2012
Сообщений: 624
02.12.2012, 20:55     Среди элементов строки убрать те которые находятся внутри скобок #5
вы по ходу дела забыли, что скобки могут быть вложенными. Я бы решил так, но могу ошибаться
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
int main()
{
   int bracketsLevel = 0;
   const char *str = "ab(sds(dsds)s)";
 
   for (int i = 0; str[i] != '\0'; ++i)
   {
      if (str[i] == ')')
         --bracketsLevel;
 
      if (bracketsLevel == 0)
      {
         std::cout << str[i];
      }
      if (str[i] == '(')
         ++bracketsLevel;
   }
 
   return 0;
}
MaRKerNSK
 Аватар для MaRKerNSK
24 / 11 / 1
Регистрация: 26.11.2012
Сообщений: 110
Записей в блоге: 2
02.12.2012, 20:57     Среди элементов строки убрать те которые находятся внутри скобок #6
Buckstabue, Да точно вложенные скобки)) =) тогда можно крутить удалить всё из первых скобок оставить всё во вторых))и тд ))
Пaтрик
 Аватар для Пaтрик
394 / 387 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
02.12.2012, 21:02     Среди элементов строки убрать те которые находятся внутри скобок #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <regex>
#include <string>
#include <iterator>
 
int main()
{
    std::string str = "ab(sds(dsds)s)";
    std::regex regex("[(].*[)]");
    std::string result;
    std::regex_replace(
        std::back_inserter(result),
        str.begin(),
        str.end(),
        regex,
        "");
    std::cout << result << std::endl;
}
Buckstabue
 Аватар для Buckstabue
175 / 124 / 6
Регистрация: 12.01.2012
Сообщений: 624
02.12.2012, 21:06     Среди элементов строки убрать те которые находятся внутри скобок #8
И все-таки мой алгоритм не оптимален. Ведь может быть такая штука:
"asdsadsa(dfdfd" здесь "dfdfd" находится не внутри скобок, однако я ее удаляю. кромет того программа может ломаться при такой штуке ")))a((s)"
AlexProg
1 / 1 / 0
Регистрация: 03.11.2012
Сообщений: 52
02.12.2012, 21:07  [ТС]     Среди элементов строки убрать те которые находятся внутри скобок #9
благодарю всех сейчас проверю
MaRKerNSK
 Аватар для MaRKerNSK
24 / 11 / 1
Регистрация: 26.11.2012
Сообщений: 110
Записей в блоге: 2
02.12.2012, 21:12     Среди элементов строки убрать те которые находятся внутри скобок #10
Buckstabue, Я сомневаюсь что человеку из первого поста нужно какоето сложное и гибкое решение))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2012, 21:16     Среди элементов строки убрать те которые находятся внутри скобок
Еще ссылки по теме:

C++ Строки. Вывести на экран все символы, расположенные внутри скобок
C++ Задача с массивом, нужно найти сумму элементов которые находятся перед последним отрицательным элементом
В массиве из 15 элементов, вывести те элементы , которые находятся перед максимальным C++

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

Или воспользуйтесь поиском по форуму:
Buckstabue
 Аватар для Buckstabue
175 / 124 / 6
Регистрация: 12.01.2012
Сообщений: 624
02.12.2012, 21:16     Среди элементов строки убрать те которые находятся внутри скобок #11
еще вопрос как проинтерпретировать запись вида a(b(c)
Что здесь в скобках? Только "c" или "b(с"? Т.е. жадные эти скобки или нет?
Yandex
Объявления
02.12.2012, 21:16     Среди элементов строки убрать те которые находятся внутри скобок
Ответ Создать тему
Опции темы

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