您的位置:首页 > 其它

统计输入中的行数,单词数,字符数

2011-04-14 10:30 411 查看
源于《The C Programming Language》P14的一道例题:

统计输入中的行数,单词数,字符数(单词的定义:其中不包括空格,制表符,换行符的字符序列)

#include <stdio.h>

#define IN 1

#define OUT 0

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 == '/t' || c == '/n')

state = OUT;

else if(state == OUT)

{

state = IN;

++nw;

}

return 0;

}

1, 对于第二个if语句,当出现这些字符时,认定一个单词已经结束,故将state赋值为OUT,这一点在设计的时候不太容易想到。

2, 用两个分开的if语句的清晰度高于一个if-else语句(谨针对本例),因为第二个if语句是个if-else语句,如果在第二个ifz之前加上else

会增加阅读的难度。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: