c++bool变量的问题

来源:百度知道 编辑:UC知道 时间:2024/05/10 13:25:29
#include "stdio.h"
void main()
{
int c,n;
bool inword;
printf("Enter your sentence:\n");
n=0;
inword=false;
while((c=getchar())!= EOF)
if(c==' '||c=='\t'||c=='\n')
inword=false;
else if(inword==false) //????
{
inword=true; //????
n++;
}
printf("There are %d words\n",n);
}
问号那里inword的作用是什么呢,是有一个字符就转变一个true吗?高手帮忙解释下,谢谢

这段程序是单词计数,就是你输入的那段文字中有多少个单词。
初始的时候inword的值为false,假设第一个单词为"hello",读到字母h的时候,inword的值为初始值false,n的值就加1,hello这个单词就算统计了,这时再将inword的值改为true,以后再读到e、l、l、o的时候就会跳过
{
inword=true; //????
n++;
}
这个语句,不会造成“hello”这个单词的重复计数。hello读完后遇到空格,inword又会转变为false,再遇到下一个单词的时候又可以开始计数

用来判断字符中的"空格","\t","\n"的!