diff options
Diffstat (limited to 'ch01/ex12-print.c')
| -rw-r--r-- | ch01/ex12-print.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/ch01/ex12-print.c b/ch01/ex12-print.c new file mode 100644 index 0000000..91aafa2 --- /dev/null +++ b/ch01/ex12-print.c @@ -0,0 +1,23 @@ +#include <stdio.h> + +#define IN 1 /* inside a word */ +#define OUT 0 /* outside a word */ + +/* print one word per line from the input */ +int main() +{ + int c, state; + + state = OUT; + while ((c = getchar()) != EOF) { + if (c == ' ' || c == '\n' || c == '\t') { + if (state == IN) + putchar('\n'); + state = OUT; + } else if (state == OUT) + state = IN; + if (state == IN) + putchar(c); + } + putchar('\n'); +} |
