C语言-输入一行英文字符串统计单词个数,单词之间以空格隔开
判断是否为单词的依据,通过一个flag标识,flag为0表示字符为空格,接下来出现不是空格,会将flag置为1
只有当flag为1且当前字符不为空格,才会算作一个单独单词,保证连续多个字符为一个单词。
#include<stdio.h>
int main() {
//定义一个string字符数组来接收输入的字符串
//定义一个c字符用来比较当前字符是否是空格
char string[100],c;
//count用来统计单词个数,
// 使用flag来标识如何为一个新的单词,为一个新单词的标准是前面的一个字符为空格,且初始值为0
int i, count = 0, flag = 0;
gets(string);//输入一个字符串给字符数组string
for (i = 0; (c = string[i]) != '\0'; i++) {
if (c == ' ')//如果是空格字符,使word置0
{
flag = 0;
} else if (flag == 0)//如果不是空格字符,且flag原来的值为0,即前面是空格,使flag置1
{
flag = 1;count++;
}
}
printf("count=%d\n", count);
return 0;
}