В вашем коде есть несколько проблем
if(c=' ')
где = должно быть == if (state=0)
где = должно быть == - символ после пробела теряется и заменяется на \ n
- символы типа \ n не считаются пробелом
Функция isspace является вашим другомзнать, если персонаж играет роль пробела.
Предложение исправить все проблемы может быть:
#include <stdio.h>
#include <ctype.h>
int main() {
int c;
int inWord = 0;
while((c=getchar())!=EOF) {
if (!isspace(c)) {
putchar(c);
inWord = 1;
}
else if (inWord) {
putchar('\n');
inWord = 0;
}
}
if (inWord)
putchar('\n');
}
Компиляция и выполнение:
pi@raspberrypi:/tmp $ gcc -pedantic -Wextra -g s.c
pi@raspberrypi:/tmp $ cat f
just a
test of
validity
pi@raspberrypi:/tmp $ ./a.out < f
just
a
test
of
validity
pi@raspberrypi:/tmp $