Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2009, 14:52   #1
Diamond2107
Пользователь
 
Регистрация: 22.03.2009
Сообщений: 76
Печаль Си++. Строки.

Здравствуйте)) Помогите пожалуйста с такой задачей: Разработать программу, которая для заданной строки s: удаляет из нее последовательность символов, расположенных между круглыми скобками (считается, что в строке ровно одна пара круглых скобок).
Вот, что смогла сделать..
Код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

char str[80];
int main()
{
int k=0;
int i;
puts ("vvedite stroky");
gets (str);
for (i=0; i<strlen(str); i++)
        strdel(str,'()',i);
printf ("%s\n", str);
printf ("%d\n", k);
system("PAUSE");
return 0;
}
помогите пожалйуста((

Последний раз редактировалось Diamond2107; 11.12.2009 в 15:05.
Diamond2107 вне форума Ответить с цитированием
Старый 11.12.2009, 15:07   #2
Diamond2107
Пользователь
 
Регистрация: 22.03.2009
Сообщений: 76
По умолчанию

Не могли бы Вы помочь..((
Diamond2107 вне форума Ответить с цитированием
Старый 11.12.2009, 17:33   #3
Diamond2107
Пользователь
 
Регистрация: 22.03.2009
Сообщений: 76
По умолчанию

Объясните пожалуйста..какую функцию использовать((
Diamond2107 вне форума Ответить с цитированием
Старый 12.12.2009, 19:02   #4
Diamond2107
Пользователь
 
Регистрация: 22.03.2009
Сообщений: 76
По умолчанию

Помогите пожалуйста..не понимаю как указать, что удалять именно то, что в скобках((
Diamond2107 вне форума Ответить с цитированием
Старый 12.12.2009, 19:14   #5
osichev
Форумчанин
 
Регистрация: 18.05.2009
Сообщений: 180
По умолчанию

да,то что в круглых скобках.
Программист без пива, как спирт без пробки - выдохнется___________-
osichev вне форума Ответить с цитированием
Старый 12.12.2009, 19:18   #6
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Как вариант можно найти открывающую скобку в тексте, затем закрывающую, затем перезаписать всё, что идёт за открывающей скобкой тем, что идёт начиная с закрывающей скобки, включая терминирующий 0
netrino вне форума Ответить с цитированием
Старый 12.12.2009, 19:22   #7
Diamond2107
Пользователь
 
Регистрация: 22.03.2009
Сообщений: 76
По умолчанию

А как это выполнить с помощью функции?..я думала все намного легче((
Diamond2107 вне форума Ответить с цитированием
Старый 12.12.2009, 19:42   #8
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

А там просто всё на самом деле ) Если бы вы не ленились и прочитали хотя бы несколько глав из книги по программированию на C/C++, то без труда всё сделали без посторонней помощи )
netrino вне форума Ответить с цитированием
Старый 12.12.2009, 19:50   #9
Diamond2107
Пользователь
 
Регистрация: 22.03.2009
Сообщений: 76
По умолчанию

Я не просила Вас написать за меня..я попросила Вас объяснить..потому что то, что Вы написали мне немного не понятно. Читала..и еще прочитаю))спасибо Вам))
Diamond2107 вне форума Ответить с цитированием
Старый 12.12.2009, 19:51   #10
GodsamcK
Новичок
Джуниор
 
Регистрация: 12.12.2009
Сообщений: 2
Печаль Помогите начинающему

Нужно ввести предложение и заменить в нем слова, номера которых ввели с клавиатуры(А, B).

Не знаю уже что менять.


Код:
#include<iostream.h>
#include<stdio.h>
#include<string.h>
#include<conio.h>
void main()
{
 clrscr();

 char str[90],sa[90];
 int a,b,i,j,sl,k1,k2,k3,k4,la,lb,l,p=0;

 cout<<"Vvedite predlojenie\n";
 gets(str);
 cout<<str;
 cout<<"\nA = ";
 cin>>a;
 cout<<"\nB = ";
 cin>>b;
 sl=1;
 l=strlen(str);
 i=0;
 str[l+1]=' ';
while(i<l)
	{
	 if(str[i]==' ')
	   {
	   sl++;
	   if(sl==a) k1=i+1;
	   if(a==1) k1=0;
	   if(sl==b) k3=i+1;
	   if(b==1) k3=0;
	   k4=k3;
	   k2=k1;
	   }
	i++;
	}

while(str[k2+1]!=' ') { k2++; }
while(str[k4+1]!=' ') { k4++; }

la=k2-k1;
la++;
lb=k4-k3;
lb++;

if (k1>k2)
	{
		strncpy(sa,str+0,k1-1);
		strcpy(sa," ");
		srtncpy(sa,str+k1,la);
		strcpy(sa," ");
		srtncpy(sa,str+(k2+1),k3-k2);
		strcpy(sa," ");
		srtncpy(sa,str+k3,lb);
		strcpy(sa," ");
		srtncpy(sa,str+(k4+1),l-k4);
		strcpy(sa,"\0");
	}
		else
	{
		strncpy(sa,str+0,k3-1);
		strcpy(sa," ");
		srtncpy(sa,str+k3,lb);
		strcpy(sa," ");
		srtncpy(sa,str+(k4+1),);
		strcpy(sa," ");
		srtncpy(sa,str+k1,la);
		strcpy(sa," ");
		srtncpy(sa,str+(k2+1),l-k2);
		strcpy(sa,"\0");
	}
cout<<"\n";
cout<<sa<<"\n";
}
GodsamcK вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перенести символа с начала строки в место перед запятой этой же строки. Zhiltsov Microsoft Office Excel 4 05.06.2009 13:10
Строки. Как вывести часть строки? Anfall Общие вопросы Delphi 7 26.02.2009 09:10
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй gotex Помощь студентам 4 08.05.2008 02:27
строки в си! GTP_edition Фриланс 5 05.05.2008 01:06
как вывести строку поочередно сначала первая буква первой строки потом первая буква второй строки и т.д. vitalik007 Помощь студентам 1 25.09.2007 20:45