привет,
у Керигана с Ричи в учебной главе есть упражнение 1.7:
"Напишите программу, которая копирует ввод на вывод,
заменяя при этом каждую последовательность из одного
или более пробелов на один пробел"
я ломал голову всю субботу и вот что сегодня утром придумал:
----------
/* ms2os.c - программка замены двух и более пробелов подряд
* на стандартном вводе на один пробел в стандартном выводе */
#include <stdio.h>
#define EOF -1
main()
{
int c, d, ns;
ns = d = 0;
while ((c = getchar()) != EOF) {
if (c == 32)
++ns;
if (c != 32)
ns = 0;
if (ns > 1)
c = '\0';
putchar(c);
}
}
что интересно - оно работает!
Но есть смутные сомнения - а может что-то сделано не по правилам или не рационально? Можно ли считать, что я верно решил упражнение? Или надо было его решить по другому?
Подскажите пож все ли у меня верно.. Не дайте умереть будущему Коксу-2.. :)