编程输入一行文本,计算这行文本的单词平均长度。假设每个单词用至少一个空格或者标点(英文逗号、句号)隔开。使用C++ string类型。
时间: 2023-04-01 18:04:10 浏览: 149
好的,这个问题我可以回答。首先,我们需要将输入的文本按照空格或标点符号分割成单词,然后计算每个单词的长度,最后求出所有单词长度的平均值。以下是示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char text[100];
printf("请输入一行文本:");
fgets(text, 100, stdin); // 从标准输入读取一行文本
int word_count = ; // 单词数量
int char_count = ; // 字符数量(不包括空格和标点)
int len = strlen(text);
for (int i = ; i < len; i++) {
if (text[i] == ' ' || text[i] == ',' || text[i] == '.') {
// 遇到空格或标点,说明一个单词结束
if (char_count > ) {
word_count++;
}
char_count = ;
} else {
// 统计字符数量
char_count++;
}
}
// 处理最后一个单词
if (char_count > ) {
word_count++;
}
// 计算平均长度
double avg_len = (double)len / word_count;
printf("单词平均长度为:%.2f\n", avg_len);
return ;
}
```
注意,这里使用了 `fgets` 函数来读取一行文本,因为它可以避免输入缓冲区溢出的问题。另外,为了方便,我们假设输入的文本不超过 100 个字符。
阅读全文