一串字符,调用此函数统计。
思路:利用ASCII码表中字母对应的数字编号进行统计
1.在子函数中定义一个长度为123的一维数组(主要利用的是65-80,97-122这几个数字与ASCII对应,其他的可以不管),参数数组定义为字符数组此处为(char a)
2.for(i=0;i<20;i++){
b[a[i]]++;
}//其中b[a[i]]++;就完成了字母每出现一次,在b数组对应编号上的元素就加一
3.遍历数组输出下标为65-90中不为0的元素(如果不区分大小写就是b[i]+b[i+32],因为ASCII中大小写字母的编号就相差32,如A-65,a-97)区分大小写则再输出下标为97-122的元素,对应下标元素为几对应字母就出现了几次
4.主函数调用子函数即可
#include#include //子函数 void calculate(char a[20]){ int i,j; int b[123]; for(i=0;i<123;i++){ b[i]=0;//这一步将b数组初始化为零数组 } for(i=0;i<20;i++){ b[a[i]]++;//此步统计字符串中字母出现次数 } for(i=65;i<91;i++){ if(b[i]!=0||b[i+32]!=0){ printf("%c有%d个n",i,b[i]+b[i+32]);//此步输出字母出现次数(不分大小写) } } } //主函数 int main(){ char s[20]; printf("请输入一个字符串n"); gets(s); calculate(s); system("pause"); return 0; }
欢迎批评指正



