c语言实现每个单词的长度,和单词长度对应单词数目的二维直方图
时间: 2024-10-29 15:17:54 浏览: 28
在C语言中,实现每个单词的长度以及与其长度对应的单词数目二维直方图,通常需要以下步骤:
1. **输入处理**:首先从用户那里获取一段文本,可以使用`fgets()`函数读取一行字符串。
```c
char input[1000];
fgets(input, sizeof(input), stdin);
```
2. **分割单词**:使用`strtok()`函数将字符串按空格拆分成单词,并存储在一个动态数组中。
```c
char* token;
int word_count = 0;
token = strtok(input, " ");
while (token) {
word_count++;
// 对于每一个单词,保存其长度
int word_length = strlen(token);
// 索引到二维数组中,这里假设我们有一个预定义大小的二维数组
histogram[word_length][word_count]++;
token = strtok(NULL, " ");
}
```
3. **二维数组维护**:这里`histogram`是一个二维数组,用于存储单词长度和对应频率。数组的每一行代表一个特定的单词长度,列则表示在此长度下的单词总数。
4. **打印直方图**:遍历二维数组,输出每个长度及其对应的单词数量。
```c
for (int i = 0; i <= MAX_LENGTH; i++) {
for (int j = 1; j <= word_count; j++) {
printf("%d: %d\t", i, histogram[i][j]);
}
printf("\n");
}
```
注意:你需要定义`MAX_LENGTH`作为最大允许的单词长度,并根据实际需求调整数组的大小。
阅读全文