Dawka1305
1

Исключить из текста символы, расположенные между всеми парами скобок

31.01.2011, 18:43. Показов 1332. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание:
Дан текст. Исключить из него символы, расположенные между всеми парами скобок (, ). Сами скобки тоже должны быть исключены. Внутри каждой пары скобок могут находиться другие.

помогите разобраться где ошибка. например в случае
(аб(вгд))) программа удалит все, хотя должна только -(аб(вгд)), а последнюю скобку должна оставить

вот код:

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
#include <iostream>
#include <conio.h>
using namespace std;
 
 
void main(void)
{
char text[81],*t;
int i,dlina,temp;
int otkrskobka,zakrskobka;
 
cout<<"vvedite text\n";
gets(text); //ввод текста
t=(char*)malloc(dlina=(strlen(text) )*sizeof(char));
strcpy(t,text);
 
for(zakrskobka=otkrskobka=temp=0 ,i=1;i<dlina;i++)
{
if(t[i]=='(')
otkrskobka=i;
if(t[i]==')') //поиск скобок
zakrskobka=i;
if(zakrskobka-otkrskobka>0 )
{
for(i=otkrskobka;i>=0;i--)
if(t[i]=='(')
otkrskobka=i;
for(i=zakrskobka;i<dlina;i++)
{
if(t[i]=='(')
i=dlina;
if(t[i]==')')
zakrskobka=i;
}
temp=dlina-(zakrskobka-otkrskobka-1);
for(zakrskobka,otkrskobka;zakrskobk a<dlina;zakrskobka++,otkrskobka++)
t[otkrskobka]=t[zakrskobka+1];
otkrskobka=zakrskobka=i=0;
dlina=temp;
}
}
for(i=0;i<dlina-1;i++)
cout<<t[i]; //вывод обработанного текста
cout<<"\n";
system("pause");
free(t);
}
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.01.2011, 18:43
Ответы с готовыми решениями:

Нахождения кратчайших путей между всеми парами вершин графа
Подскажите как можно улучшить алгоритм Флойда-Уоршелла что-бы он верно работал если длина некоторых...

Вычислить количество различных путей между всеми парами вершин графа
Задан граф с N вершинами вычислить количество различных путей между всеми парами вершин графа

Найти минимальные пути между всеми парами вершин, используя алгоритм Флойда.
Найти минимальные пути между всеми парами вершин, используя алгоритм Флойда. А л г о р и т м Ф...

Задачка со строками(Требуется вставить символ между всеми парами соседних символов в строке)
Здравствуйте! Есть такая задачка:Файл состоит из записей вида &quot;s пробел c&quot;, где s -строка, а с -...

1
2658 / 1924 / 960
Регистрация: 21.12.2010
Сообщений: 3,566
Записей в блоге: 9
31.01.2011, 21:32 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>
using namespace std;
 
 
int main(){
    string s;
    getline(cin, s);
    for(string::iterator it=s.begin(), ir=it; it!=s.end(); ++it, ++ir){
        if(*it==')'){
            while(*ir!='('&&ir!=--s.begin()){
                  --ir;
            }
            if(ir==s.begin()-1){
                ir=it;
                continue;
            };
            s.erase(ir, it+1);
            ir=it=s.begin()-1;
        }
    }
    cout<<s;
}
 
 
/*
 
i(bn(hjk))m )i(yu)g
i(bn(hj)k))m i(yu)g))
 
*/
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.01.2011, 21:32
Помогаю со студенческими работами здесь

В одномерном массиве из целых чисел вставить новый элемент между всеми парами элементов, имеющими разные знаки
одномерном массиве из целых чисел вставить новый элемент между всеми парами элементов,имеющими...

Вывести на экран все символы, расположенные внутри скобок
Дана строка символов, среди которых есть одна открывающая и одна закрывающая скобки. Вывести на...

Вывести на экран все символы, расположенные внутри скобок
Прошу помочь решить задачки!:(очень нужно (Билет №22) Дана строка, среди символов которой есть...

Cтрока: Вывести на экран все символы, расположенные внутри скобок.
Дана строка символов,среди которых есть одна открывающаяся и одна закрывающая скобка.Вывести на...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru