7.4 一个统计单词的程序
判断非空白字符最直接的测试表达式是:
c != ' ' && c != '\n' && c != '\t'
检测空白字符最直接的测试表达式是:
c == ' ' || c == '\n' || c == '\t'
使用ctype.h头文件中的函数isspace()更简单。如果该函数的参数是空白字符,则返回真。所以,如果c是空白字符,isspace(c)是真;
如果c不是空白字符,!isspace(c)为真。
如果使用布尔类型的变量,通常习惯把变量本身作为测试条件。如下所示:
这里inword的值不是1就是0。
用if( inword )代替if( inword == true )
用if( !inword )代替if( inword == false )
可以这样做的原因是,如果inword为true,则表达式inword == true为true;如果inword为false,则表达式inword == true为false。
所以,还不如直接用inword作为测试条件。类似地,!inword的值与表达式inword == false的值相同(非真即false,非假即true)。
// wordcnt.c -- counts characters, words, lines
#include <stdio.h>
#include <ctype.h> // for isspace()
C Primer Plus(6) 中文版 第7章 C控制语句:分支和跳转 7.4 一个统计单词的程序
![](https://img-home.csdnimg.cn/images/20240711042549.png)