c语言利用循环存储多个字符串并找出出现次数最多的字符串
时间: 2023-12-21 07:07:02 浏览: 107
接收字符串时用了取地址符-c语言数组详解
要在存储多个字符串的同时找出出现次数最多的字符串,你可以使用一个数组来存储字符串,并使用另一个数组来记录每个字符串的出现次数。以下是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STRINGS 10
#define MAX_LENGTH 100
int main() {
char strings[MAX_STRINGS][MAX_LENGTH];
int count;
int frequency[MAX_STRINGS] = {0};
int maxFrequencyIndex = 0;
printf("请输入字符串的个数(最多%d个):", MAX_STRINGS);
scanf("%d", &count);
// 输入字符串
printf("请输入%d个字符串:\n", count);
for (int i = 0; i < count; i++) {
scanf("%s", strings[i]);
}
// 计算每个字符串的出现次数
for (int i = 0; i < count; i++) {
for (int j = 0; j < count; j++) {
if (strcmp(strings[i], strings[j]) == 0) {
frequency[i]++;
}
}
// 更新出现次数最多的字符串索引
if (frequency[i] > frequency[maxFrequencyIndex]) {
maxFrequencyIndex = i;
}
}
// 输出结果
printf("出现次数最多的字符串是:%s,出现次数为%d\n", strings[maxFrequencyIndex], frequency[maxFrequencyIndex]);
return 0;
}
```
在这个示例中,我们使用 `strings` 数组来存储多个字符串,`frequency` 数组来记录每个字符串的出现次数。我们还使用 `maxFrequencyIndex` 变量来记录出现次数最多的字符串的索引。
首先,程序要求用户输入字符串的个数,并根据输入的个数动态地存储相应数量的字符串。然后,程序遍历每个字符串,使用嵌套循环计算每个字符串的出现次数,并更新 `maxFrequencyIndex` 变量以记录出现次数最多的字符串的索引。
最后,程序输出出现次数最多的字符串及其出现次数。
请注意,这个示例假设字符串的长度不会超过 `MAX_LENGTH`,且字符串中不包含空格。如果需要处理更长的字符串或包含空格的字符串,你可能需要适当增加 `MAX_LENGTH` 的值,并使用其他方法来处理输入和比较字符串。
阅读全文