用C语言写一个程序读入一条句子中的所有单词,显示如下指定长度的单词的数目: (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
时间: 2024-02-12 08:04:40 浏览: 132
以下是使用C语言实现的程序,可以满足你的要求:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[1000];
int len1 = 0, len2 = 0, len3 = 0, len4 = 0, len5 = 0;
printf("请输入一行字符:");
fgets(str, sizeof(str), stdin);
char *p = strtok(str, " ");
while (p != NULL) {
int len = strlen(p);
if (len == 1) {
len1++;
} else if (len >= 2 && len <= 5) {
len2++;
} else if (len >= 6 && len <= 10) {
len3++;
} else if (len >= 11 && len <= 20) {
len4++;
} else {
len5++;
}
p = strtok(NULL, " ");
}
printf("长度为1的单词数:%d\n", len1);
printf("长度在2到5的单词数:%d\n", len2);
printf("长度在6到10的单词数:%d\n", len3);
printf("长度在11到20的单词数:%d\n", len4);
printf("长度大于等于21的单词数:%d\n", len5);
return 0;
}
```
程序的思路是先读入一行字符串,然后使用 `strtok` 函数将其分割为每个单词,统计不同长度的单词数,并最终输出结果。
阅读全文