From a8c37d2b93f499fcf3eb7b8dc4dded4c7c8e1b51 Mon Sep 17 00:00:00 2001 From: Brian Rogers Date: Thu, 23 May 2024 13:35:47 -0600 Subject: [PATCH] adding word count example --- chapter-01/3.0-word-count/Makefile | 2 ++ chapter-01/3.0-word-count/main.c | 27 +++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 chapter-01/3.0-word-count/Makefile create mode 100644 chapter-01/3.0-word-count/main.c diff --git a/chapter-01/3.0-word-count/Makefile b/chapter-01/3.0-word-count/Makefile new file mode 100644 index 0000000..8bfeae6 --- /dev/null +++ b/chapter-01/3.0-word-count/Makefile @@ -0,0 +1,2 @@ +all: + gcc -o word-count.x86_64 main.c diff --git a/chapter-01/3.0-word-count/main.c b/chapter-01/3.0-word-count/main.c new file mode 100644 index 0000000..afb2714 --- /dev/null +++ b/chapter-01/3.0-word-count/main.c @@ -0,0 +1,27 @@ +#include + +#define IN 1 +#define OUT 0 + +/* count lines, words, and characters in user input */ +int main() +{ + int c, nl, nw, nc, state; + + state = OUT; + nl = nw = nc = 0; + while ((c = getchar()) != EOF) { + ++nc; + if (c == '\n') + ++nl; + if (c == ' ' || c == '\n' || c == '\t') + state = OUT; + else if (state == OUT) { + state = IN; + ++nw; + } + } + printf("number of lines: %d\n", nl); + printf("number of words: %d\n", nw); + printf("number of chars: %d\n", nc); +}