1.题目
在本实例中输入一行字幅,然后统计其中单词的个数,要求每个单词之间用空格分隔开,最后的字符不能为空格。
2.代码
#include<stdio.h>
int main(void)
{
char cString[100]; //定义保存字符串的数组
int iword = 1; //iword表示单词的个数
char cBlank; //表示空格
gets(cString); //输入字符串(scanf)
if (cString[0] == '\0') //判断字符串为空的情况
{
printf("字符串为空!\n");
}
else if (cString[0] == " ") //判断第一个字符为空格的情况下
{
printf("第一个字符为空格!\n");
}
else
{
for (int iIndex = 0; cString[iIndex] != '\0'; iIndex++) //循环判断每一个字符
{
cBlank = cString[iIndex];
if (cBlank == ' ') //判断是否为空格
{
iword++; //如果是则加1
}
}
printf("%d\n", iword);
}
return 0;
}
3.个人见解
gets功能:从标准输入读入字符,并保存到s指定的内存空间,直到出现换行符或读到文件结尾为止。
可以把其分成三种情况:
1.没有输入任何字符,直接回车。
2.第一个字符是空格,然后回车。
3.正常输入,中间用字符隔开。
所以,使用if语句进行分别输出。