用ascll码来统计,原理:比如A的ascll码为65,假如句子中出现了B,B的ascll码减A的ascll码等于1,以此类推C-A=2,所以可以创建一个数组int a[100],可以用下标0代表A, A每出现一次a[0]++,用a[0]代表A出现的次数。以此类推a[1]为B出现的次数;
代码:
#include<stdio.h>
void count(char a[],int m)
{
char c[62] = {0};
for (int i = 0; i < m; i++)
{
if (a[i] >= 'A' && a[i] <= 'Z')
{
c[a[i] - 'A'+10]++;
}
else if (a[i] >= 'a' && a[i] <= 'z')
{
c[a[i] - 'a'+36]++;
}
else
{
c[a[i] - '0']++;
}
}
int z = 0,d=0,x=0;
for (int i = 0; i <= 61; i++)
{
if (i <= 9)
{
printf("%d出现的次数是:%d\n", z, c[i]);
z++;
}
else if (i > 9 && i < 36)
{
printf("字母%c出现的次数是:%d\n", 'A' + d, c[i]);
d++;
}
else
{
printf("字母%c出现的次数是:%d\n", 'a' + x, c[i]);
x++;
}
}
}
int main()
{
int i;
char a[100] = {0};
gets(a);
for (i = 0; a[i] != '\0'; i++);
count(a, i);
}