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-15 16:05:29 浏览: 78
以下是 C 语言代码实现:
```c
#include <stdio.h>
#include <string.h>
int main() {
char sentence[1000];
int len1 = 0, len2_5 = 0, len6_10 = 0, len11_20 = 0, len21 = 0;
printf("请输入一行字符:");
fgets(sentence, 1000, stdin);
// 将句子按空格分隔成单词
char *word = strtok(sentence, " ");
while (word != NULL) {
int len = strlen(word) - 1; // 去掉结尾的换行符
if (len == 1) {
len1++;
} else if (len >= 2 && len <= 5) {
len2_5++;
} else if (len >= 6 && len <= 10) {
len6_10++;
} else if (len >= 11 && len <= 20) {
len11_20++;
} else {
len21++;
}
word = strtok(NULL, " ");
}
// 输出结果
printf("长度为1的单词数:%d\n", len1);
printf("长度在2到5的单词数:%d\n", len2_5);
printf("长度在6到10的单词数:%d\n", len6_10);
printf("长度在11到20的单词数:%d\n", len11_20);
printf("长度大于等于21的单词数:%d\n", len21);
return 0;
}
```
运行示例:
```
请输入一行字符:hh jhk khikaia oahfuihfo9awfiawejfiwjaiofawjio jkhkalal
长度为1的单词数:0
长度在2到5的单词数:2
长度在6到10的单词数:2
长度在11到20的单词数:0
长度大于等于21的单词数:1
```
阅读全文