从键盘输入一行字符(最长不超过 200 字符),用函数编程统计其中单词(以空格 作为间隔符的字符串)的个数。例如 How are you 中单词个数为 3 。
要求:
需要考虑字符串中存在多个空格的情况。运行结果:
代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int CountWords(char str[])
{
int cnt = 0; //单词数
int i = 0;
for (i = 0; str[i] != '\0'; i++)
{
if (i == 0 && str[i] != ' ') //第一个字符不是空格
cnt++;
else if (i > 0)
{
if (str[i - 1] == ' ' && str[i] != ' ')//前一个字符是空格,当前字符不是空格
cnt++;
}
}
return cnt;
}
int main()
{
int n = 0;
char str[1000] = { 0 };
printf("Input a string:\n");
gets(str);
n = CountWords(str);
printf("Number of words=%d\n", n);
return 0;
}
#include <stdio.h>
int CountWords(char str[])
{
int cnt = 0;
for(int i = 0; str[i] != '\0'; i++)
{
if(str[i] == ' ' && str[i+1] != ' ' && str[i+1] != '\0')
cnt++;
}
return cnt+1;
}
int main()
{
char str[200];
printf("Input a string:\n");
gets(str);
printf("Number of words=%d\n", CountWords(str));
return 0;
}
仅供参考:
#include <stdio.h>
#include <string.h>
int CountWords(char str[])
{
int i = 0, j = 0;
while(str[i] != '\0')
{
if(str[i] == ' ')
{
j++;
}
i++;
}
j++;
return j;
}
int main()
{
char s[200] = {0};
int num;
printf("Input a string:\n");
gets(s);
num = CountWords(s);
printf("Number of words=%d\n",num);
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!