写一个程序读入一条句子中的所有单词,显示如下指定长度的单词的数目:
(a) 1
(b) 2 to 5
(c) 6 to 10
(d) 11 to 20
(e) 大于等于21
假定句子以换行结束,单词间用空格分隔,并且每个单词长度不超过25个字符。
**提示信息:"请输入一行字符:"
**输出格式要求:
"长度为1的单词数:%d\n"
"长度在2到5的单词数:%d\n"
"长度在6到10的单词数:%d\n"
"长度在11到20的单词数:%d\n"
"长度大于等于21的单词数:%d\n"
程序运行示例:
请输入一行字符:hh jhk khikaia oahfuihfo9awfiawejfiwjaiofawjio jkhkalal
长度为1的单词数:0
长度在2到5的单词数:2
长度在6到10的单词数:2
长度在11到20的单词数:0
长度大于等于21的单词数:1
#include<stdio.h>
void fun(char s[])
{
int count[5] = { 0 };
int i;
int n = 0;
for (i = 0; s[i] != '\0'; i++)
{
if (s[i] != ' ')//当不为空格时,n++
{
n++;
}
if (s[i] == ' ' || s[i + 1] == '\0')//当为空格时或者下一个字符为‘\0'时,比对n的值
{
if (n == 1) count[0]++;
else if (n >= 2 && n <= 5) count[1]++;
else if (n >= 6 && n <= 10) count[2]++;
else if (n >= 11 && n <= 20) count[3]++;
else if (n >= 21) count[4]++;
n = 0;
}
}
printf("长度为1的单词数:%d\n", count[0]);
printf("长度在2到5的单词数:%d\n", count[1]);
printf("长度在6到10的单词数:%d\n", count[2]);
printf("长度在11到20的单词数:%d\n", count[3]);
printf("长度大于等于21的单词数:%d\n", count[4]);
}
int main()
{
char s[265];
printf("请输入一行字符:");
gets(s);
fun(s);
return 0;
}