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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2010, 22:30   #1
amfin
 
Регистрация: 19.12.2010
Сообщений: 8
По умолчанию Задача на строки [C++]

Помогите пожалуйста написать программу. Идеи нету даже, как отслеживать повторения слов...
Дана строка, содержащая текст. В предложениях некоторые из слов записаны подряд несколько раз (предложение заканчивается точкой или знаком восклицания). Получить в новой строке отредактированный текст, в котором удалены подряд идущие вхождения слов в предложениях.
amfin вне форума Ответить с цитированием
Старый 19.12.2010, 23:03   #2
Z1000000
Форумчанин
 
Регистрация: 04.05.2010
Сообщений: 495
По умолчанию

В каждом предложении читаешь слова подряд.
Первое слово запоминаешь в буффер и выводишь в выходное предложение.
Читаешь следующее слово. Если равно первому слову - пропускаешь. Если не равно - запоминаешь в буффер и выводишь в выходное предложение.
И так до конца предложения, Потом берешь следующее предложение.
Нажми на весы, поставь +
Для благодарностей : WebMoney WMR R252732729948
Z1000000 вне форума Ответить с цитированием
Старый 19.12.2010, 23:11   #3
amfin
 
Регистрация: 19.12.2010
Сообщений: 8
По умолчанию

Предложение будет одно, можешь привести небольшой пример с комментариями? пожалуйста..
amfin вне форума Ответить с цитированием
Старый 20.12.2010, 09:10   #4
Z1000000
Форумчанин
 
Регистрация: 04.05.2010
Сообщений: 495
По умолчанию

Без комментариев...
Код:
#include "stdafx.h"
#include <string>
using namespace std;

int main(void)
{
	string s="Hello my my world world and also world!";
	string a[100],Buffer,d = "";
	int cnt=0;
	Buffer = "";
	for(int i=0;i<s.length();i++)
	{
		if ((s[i]==' ')&&(Buffer != a[cnt])) 
		{ d = d + a[cnt]; Buffer = a[cnt]; }
		a[cnt+=(s[i]==' ')?1:0]+=s[i];	
	}	
		
	
	printf("%s",d.c_str());
	getchar();
	return 0;
}
Нажми на весы, поставь +
Для благодарностей : WebMoney WMR R252732729948
Z1000000 вне форума Ответить с цитированием
Старый 20.12.2010, 10:40   #5
Filipa
 
Регистрация: 20.12.2010
Сообщений: 7
По умолчанию

Здравствуйте, помогите пожалуйста. Программу конечно написала но красивого и короткого решения не получается.
Подскажите плиз как решить максимально коротко и красиво?

В файле записаны даты в формате дд.мм.гггг необходимо преобразовать даты в прописной формат. Пример 06.09.1988 – 6 сентября 1988 года.
Filipa вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на строки С++ Many man Помощь студентам 10 06.05.2009 21:17
Задача на строки semennn Помощь студентам 5 25.04.2009 07:58
задача на строки Ananim-Pbl6ak Помощь студентам 11 26.12.2008 21:28
задача на строки Hostlman Помощь студентам 2 26.12.2007 03:17