/**Solution to exercise 5.13, p. 200, "C by Dissection" * * * Compresses text by removing unnecessary space * * 07. March, Lone Leth Thomsen **/ #include <stdio.h> #include <ctype.h> int main(void) { int c; while ((c = getchar()) != EOF) { /* the character is not EOF */ if (isspace(c)){ /* is the character a space? */ while ((c = getchar()) != EOF && isspace(c)) { /* then see if the next character is not EOF and is another space */ ; /* continue reading until not two spaces next to each other */ } putchar(' '); /* all spaces cannot be removed, keep one */ }; putchar(c); /* print the character if the first one was not a space */ }; return 0; }
while ((c = getchar()) != EOF) { /* the character is not EOF */ | |
the character is not EOF |
if (isspace(c)){ /* is the character a space? */ | |
is the character a space? |
while ((c = getchar()) != EOF && isspace(c)) { /* then see if the next character is not EOF and is another space */ | |
then see if the next character is not EOF and is another space |
; /* continue reading until not two spaces next to each other */ | |
continue reading until not two spaces next to each other |
putchar(' '); /* all spaces cannot be removed, keep one */ | |
all spaces cannot be removed, keep one |
putchar(c); /* print the character if the first one was not a space */ | |
print the character if the first one was not a space |