Added ex1_10-5.c, an implementation of an example wordcount program on pages 21/22 of KNR C, purely as an exercise to see if I could do it more efficiently than the book. This resulted in a binary that was, 138 lines long as disassembled.

This commit is contained in:
Reina Harrington-Affine 2025-08-16 01:53:43 +00:00
parent d3ce211f14
commit 313e4aaa3b

26
KNR C/ex1_10-5.c Normal file
View file

@ -0,0 +1,26 @@
#include <stdio.h>
/*Rewriting the wc program from pge 21/22 of KNR C, because the book does it in a way that I think is silly, and because I can.*/
int nl, nw, nc, state = 0;
#define IN 1 /*State when selected character is in a word*/
#define OUT 0 /*State when selected character is a newline, space, or tab (outside a word)*/
int main(){
for(int a = getchar(); a != EOF; a = getchar()){
++nc;
if(a == '\t' || a == ' ' || a == '\n'){
state = OUT;
if (a == '\n')
++nl;
} else {
state = IN;
++nw;
}
}
printf("%d %d %d\n", nl, nw, nc);
return 0;
}