📅  最后修改于: 2023-12-03 15:00:12.632000             🧑  作者: Mango
该题主要测试C语言中的字符串处理知识。
编写一个程序,计算一个字符串中出现次数最多的字符及其出现次数。
Hello World! This is a test.
Character ' ' appears max times: 6
首先需要将输入的字符串进行遍历,统计每个字符出现的次数。这里可以开一个数组,将每个字符对应的 ASCII 码作为下标进行计数。得到出现次数后,再遍历一遍数组,找出出现次数最多的字符及其出现次数。
#include <stdio.h>
#include <string.h>
#define MAXN 1000
int main() {
char str[MAXN];
int cnt[128] = {0};
int len, i, max = -1;
char ans;
gets_s(str); // 注意: gets() 函数已经过时,推荐使用 gets_s()。
len = strlen(str);
// 统计每个字符出现的次数
for (i = 0; i < len; i++) {
cnt[str[i]]++;
}
// 找出出现次数最多的字符及其出现次数
for (i = 0; i < 128; i++) {
if (cnt[i] > max) {
max = cnt[i];
ans = i;
}
}
printf("Character '%c' appears max times: %d\n", ans, max);
return 0;
}
这里再提醒一下,由于输入的字符串不一定是 ASCII 字符集,所以在实际应用中,需要使用更高级的字符串处理函数来处理字符串。