字符统计算法
一、要求
给定一个字符串,从字符串中找出出现次数最多的字符。
二、实现
原理:利用数组来存储字符出现的次数,利用数组下标表示对应的字符。
1 #include <stdio.h> 2 #include <string.h> 3 4 5 //要统计的字符串 6 char *s = "aaffcsdf23aaaaa41678hjjmrfaaaaa"; 7 8 9 int main(void) 10 { 11 int len,i; 12 int char_count; 13 char c; 14 //字符串中每个字符出现的次数,最多能表示128种字符(7位ASCII码) 15 char times[128]={0}; 16 17 char_count = 0; 18 //字符串长度 19 len= strlen(s); 20 21 //统计字符串各个字符出现的次数 22 for(i=0;i<len;i++) 23 times[s[i]]++; 24 25 //找出出现次数最多的那一个字符 26 for(i=0;i<128;i++) 27 { 28 if(times[i]>char_count) 29 { 30 char_count = times[i];//出现次数,始终保存当前出现次数的最大值 31 c = (char)i;//是哪一个字符 32 } 33 } 34 35 printf("出现最多的字符是:%c ,出现的次数为:%d次\n",c,char_count); 36 37 return 0; 38 }
运行结果: