#include //from K&R C #define IN 1 /* inside a word */ #define OUT 0 /* outside a word */ /* count lines, words, and characters in input */ int main(int argc, char *argv[]){ int character, n_lines, n_words, n_characters, state; char input; char line[80]; int index; int lineindex; FILE *f; if(argc < 2){ gets(input); } else{ f = fopen(argv[1],"r"); fgets(line,80,f); input = line[index]; } state = OUT; n_lines = n_words = n_characters = 0; while (input != EOF) { ++n_characters; if (character == '\n'){ ++n_lines; ++lineindex; } if (character == ' ' || character == '\n' || character == '\t'){ state = OUT; } else if (state == OUT) { state = IN; ++n_words; } if(index < 80){ index++; } } printf("%d %d %d\n", n_lines, n_words, n_characters); return 0; }