Implemented KNR C Exercise 1-12, reusing mostly modified code from my previous (optional) implementaiton of KNR C's example wordcounting program.
This commit is contained in:
parent
2523043172
commit
dbf602e13d
1 changed files with 24 additions and 0 deletions
24
KNR C/ex1_12.c
Normal file
24
KNR C/ex1_12.c
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
#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;
|
||||||
|
putchar('\n');
|
||||||
|
} else {
|
||||||
|
state = IN;
|
||||||
|
putchar (a);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue