1. 程式人生 > >統計輸入的行數,單詞數與字元數(C語言)

統計輸入的行數,單詞數與字元數(C語言)

#include <stdio.h>

#define IN 1 //在單詞內
#define OUT 0 //在單詞外
/**
 *統計輸入的行數,單詞數與字元數
 */
main() {
	// c:每次讀的支付,nl:行數,nw:單詞數,nc:字元數,state:標示狀態
	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("%d %d %d", nl, nw, nc);
}

輸出結果:

hello word
ABCD ni hao
love he her
a
b
5 10 39