summaryrefslogtreecommitdiff
path: root/ch01/ex12-print.c
blob: 91aafa2224c50fee443d0d6fcb936564f12b48ff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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');
}