输入一个以空格分隔的单词串,输出单词的个数。这个用C语言怎么实现?
方法1:
#include<stdio.h>
int main()
{
int con = 0;
char str[100] = { 0 };
//scanf遇到空格或者换行就会停止本次读取,所以每停止一次就让con加一
while (scanf("%s", str) == 1)
//返回值为读取变量的个数,这里输入一个字符串变量,返回值为1
//停止读取的方法是Ctrl+z,VS上需要先按一次Ctrl+z然后回车一下,连续三次
{
con++;
}
printf("单词个数为:%d\n", con);
return 0;
}
示例:
方法2:
#include<stdio.h>
int main()
{
char str[200] = { 0 };
//gets是专门用来读取一个字符串用的,
//但是由于gets无法限制读取字符个个数,所以不安全,
//因此在新版的编译器上gets是禁止使用的,
//这里使用的fgets 200 是最多读取的字符个数,
//最后面的“stdin”是标准输出,同学直接记住就可以
fgets(str, 200, stdin);
int con = 0;//统计单词个数
int i = 0;//遍历字符串
while(1)
{
if (str[i] == ' ')
{
con++;//一个单词结束就加1
}
if (str[i] == '\0')
{
con++;//遇到结尾就跳出
break;
}
i++;
}
printf("单词个数为:%d\n", con);
return 0;
}
示例: