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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.07.2017, 15:10   #1
goto ∞
Форумчанин
 
Аватар для goto ∞
 
Регистрация: 21.12.2010
Сообщений: 155
По умолчанию Задачка из К&Р

Дано упражнение:
Написать программу для вывода входного потока по одному слову в строке

Я написал просто
Код:
...
while ( (c = getchar()) != EOF)
		if (c == ' ' || c == '\t' || c =='\n') putchar('\n');
		else putchar(c);
...
Потом решил проверить по книге ответы.
Код:
...
while ( (c = getchar()) != EOF){
		if (c == ' ' || c == '\t' || c =='\n'){
			if (state == IN){
				putchar('\n');
				state = OUT;
			}	
			}else if(state == OUT){
				state = IN;
				putchar(c);
			} else putchar(c);
...
Не кажется ли лишнего в втором варианте, или есть такой поток который вызовет ошибку в первом варианте?
goto ∞ вне форума Ответить с цитированием
Старый 02.07.2017, 15:18   #2
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Ваш вариант может сгенерировать какое-то количество пустых строк, если в исходном тексте будет стоять несколько разделителей подряд.
Второй вариант отфильтровывает эту ситуацию
Black Fregat вне форума Ответить с цитированием
Старый 02.07.2017, 15:22   #3
goto ∞
Форумчанин
 
Аватар для goto ∞
 
Регистрация: 21.12.2010
Сообщений: 155
По умолчанию

Цитата:
Сообщение от Black Fregat Посмотреть сообщение
Ваш вариант может сгенерировать какое-то количество пустых строк, если в исходном тексте будет стоять несколько разделителей подряд.
Второй вариант отфильтровывает эту ситуацию
Понял, спасибо
goto ∞ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не перегружается ostream& operator<<(ostream &, Card&) Antej Общие вопросы C/C++ 2 17.12.2012 14:02
Разница между cout/cin && printf/scanf treis1000 Общие вопросы C/C++ 7 20.03.2012 18:49
Вопрос по поводу меню на сайте, html&css&js antoxa22 HTML и CSS 14 30.12.2011 11:02
TForm & TImage & PNG & Прозрачность delphi_beginner Общие вопросы Delphi 7 19.09.2009 08:46