问题如图,inword不是只初始化为假吗,为什么他可以自己检测是否为空白字符并取值为真假
inword这个变量在两个if判断里改变了其值,在两个if里面和其他条件一起配合起到计算单词的个数的功能,具体分析如下:
首先当第一次遇到非空白字符时(即!isspace(c)时,等同于isspace(c)==false),并且当前单词还没有开始读入字符(即!inword),就说明遇到一个单词开始了,单词计数n_words 就+1,同时让inword设置为true, 代表已经开始读入单词了;
接着判断单词是否读入完成,在后面那个if(isspace(c)&&inword)里面,这个if这里inword判断前面已经读入了单词,而if的isspace(c)是说当前面已经判断读到了一个空白字符,二个条件则代表这个单词结束了,所以把inword设置为false,意思是已经没有在单词中了,准备读入下一个单词;
上面两个if配合即可完成统计一个单词出现的次数的功能,第一个if代码开始读入了单词第一个字符,第二个if代表单词结束了。