Я изучаю c путем чтения K & Р. Я стараюсь быть методичным и убеждаюсь, что понимаю понятия, прежде чем двигаться дальше.Пространство не заменено
В одном из упражнений предлагается написать программу, которая копирует входные данные на выходе, «заменяя каждую строку одной или несколькими пробелами одним пробелом».
Я написал следующее, но он выводит входные дословное даже при наличии нескольких последовательных пробелов:
#include <stdio.h>
main()
{
int c, d, a;
c = getchar();
while (c != EOF)
{
a = c;
if (c == ' ' && d == ' ')
{
a = 0;
}
d = c;
putchar(a);
c = getchar();
}
}
Что я здесь делаю неправильно? Я не очень далеко в книге, так что я чувствую, что я что-то на самом деле просто не хватает ...
Вы должны начать используя значащие имена переменных. Это в 80-х годах больше :) – Blorgbeard
Повторно проверьте логику. Существует так много вызовов 'putchar' как (успешный)' getchar', поэтому никакие символы не будут удалены. Что касается 'он выводит входной дословный', я не думаю, что это так. – dxiv
@Blorgbeard Я полностью согласен. Однако в этом примере алфавитные имена фактически облегчили разговор. – 2501