题目描述:
输入一行字符串,计算其中A-Z大写字母出现的次数
-
输入:
-
案例可能有多组,每个案例输入为一行字符串。
-
输出:
-
对每个案例按A-Z的顺序输出其中大写字母出现的次数。
-
样例输入:
-
DFJEIWFNQLEF0395823048+_+JDLSFJDLSJFKK
-
样例输出:
-
A:0 B:0 C:0 D:3 E:2 F:5 G:0 H:0 I:1 J:4 K:2 L:3 M:0 N:1 O:0 P:0 Q:1 R:0 S:2 T:0 U:0 V:0 W:1 X:0 Y:0 Z:0
源代码:(不用单纯的if语句与计数变量,采用结构体的方式完成,节省代码量)
#include <stdio.h>
#include <string.h>
struct alphabet //定义结构体,存每个大写字母及其出现次数
{
char i;
int inum;
};
int main()
{
char str[100000];
struct alphabet alp;
int j,len;
while(gets(str))
{
(alp.i)='A'; //字母从A开始
len=strlen(str); //记录字符串长度
while((alp.i)<='Z')
{
alp.inum=0; //每个字母出现次数赋初值0
for(j=0;j<len;j++)
{
if(str[j]==alp.i)
(alp.inum)++; //找到对应字母,其出现次数+1
}
printf("%c:%d\n",alp.i,alp.inum);
(alp.i)++; //开始判断此字母后面的字母
}
}
return 0;
}
程序截图: