加载中...

浙江理工大学入队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;
}
posted @ 2022-10-29 20:05  shany212  阅读(70)  评论(0编辑  收藏  举报