/* ** wc.c - count of lines, words & characters from standard input. */ #include typedef enum { False, True } bool; int main( void ) { unsigned long nl = 0L; /* #lines */ unsigned long nw = 0L; /* #words */ unsigned long nc = 0L; /* #chars */ int c; bool inword = False; /* True only when inside a word */ while ( (c = getchar()) != EOF ) { ++nc; if ( c == '\n' ) { ++nl; } if ( c == ' ' || c == '\t' || c == '\n' || c == '\r' || c == '\v' || c == '\f' ) /* if whitespace */ { inword = False; } else if ( !inword ) { inword = True; ++nw; } } printf( "%lu lines, %lu words, %lu chars\n", nl, nw, nc ); }