写一个函数,其功能是:找出形参所指字符串中出现频率最高的字母(不区分大小写),并统计出其出现的次数

写一个函数,其功能是:找出形参所指字符串中出现频率最高的字母(不区分大小写),并统计出其出现的次数。例如,形参所指的字符串为:abcAbsmaxless,程序执行后的输出结果为:letter 'a' : 3 times letter 's' : 3 times

#include <ctype.h>
#include <string.h>

void sat(char *str)
{
int times[26];
int i, max = 0;

for (i = 0; i < strlen(str); i++)
if (isalpha(str[i]))
times[tolower(str[i]) - 'a']++;

for (i = 1; i < 26; i++)
if (times[i] > max)
max = times[i];

for (i = 0; i < 26; i++)
if (times[i] == max)
printf("letter'%c': %d times\n", i + 'a', max);
}

第一遍循环对字母的出现次数进行统计,isalpha判断这个字符是不是字母,tolower将一个字母转换成小写,然后减去'a'来得到这个字母的下标:'a'下标为0,后面依次加1.

第二遍循环确定出现次数最多的有几次。第三遍循环找出出现次数等于最大次数的有哪些字母并输出。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-12-23
是什么语言写的?vb还是C?追问

c语言

相似回答