浙江理工大学入队200题——14B
问题 B: 零基础学C/C++147——统计每个字母个数
题目描述
输入一段英文(字数小于100),以回车结束,统计其中的每个字母出现次数,不区分大小字。
输入
多组测试数据,每组输入一段英文(字数小于100),以回车结束
输出
输出每个字母出现的次数(次数为零的不输出) 每组数据后面输出一个空行
样例输入 Copy
Welcome to c world.
样例输出 Copy
c: 2
d: 1
e: 2
l: 2
m: 1
o: 3
r: 1
t: 1
w: 2
题解
我是用桶来写的,因为可以直接判断哪一些数出现过并出现多少次,26个英文直接对应桶的0-25
代码(AC)
点击查看代码
#include<stdio.h>
#include<string.h>
int main()
{
char a[105];
char b[26];
int n;
while(gets(a)!=NULL)
{
int s[100] = { 0 };
for (int x = 0; x < 26; x++)
{
int c = 0;
n=strlen(a);
b[x] = x + 97;
for (int i = 0; i <n; i++)
{
if (b[x] == a[i]||b[x]==a[i]+32)
{
c++;
s[x] = c;
}
}
if (s[x]>=1)
{
printf("%c: %d\n", b[x], s[x]);
}
}
printf("\n");
}
return 0;
}
本文来自博客园,作者:shany212,转载请注明原文链接:https://www.cnblogs.com/codeshany/p/zstu_200_14B.html