大学c语言求大写字母个数,C语言统计一个字符串中大写字母的个数,字符字母与数字的相互转换...

问题:

给你一串字符串由“A-Z”组成代表不同类型的飞龙。比如“BCABCA”,你需要以JHL统计法来统计下每个字母的数量,即输出每个字母的数量在这个字母之前,比如答案为“2A2B2C”。(答案按照字典序输出,即答案不能为2B2C2A)。

输入:

第一行输入一个T(T<=500)表明有T组测试样例,在每个测试样例中,输入一个字符串,不超过1000个字母,保证都为大写字母。

输出:

对于每个测试样例,输出占一行,按上文描述输出结果。

例如:

输入: 1                      输出:2A2B2C

ABCABC

代码:

#include

void main()

{

int i,t;

char str[1000];

scanf("%d",&t);

while(t--)

{

int a[100]={0};

scanf("%s",str);

for(i=0;i

{

a[str[i]-'A']++;

//str[i]-'A'是把字母转换成数字,在数组a中储存起来,如str[i]=C

//则 str[i]-'A'=2;a[str[i]-'A']++是数组a[i]的自增运算。第一次

//循环a[2]=1;再循环一次就是a[2]=2;为的是统计相同字母的个数

}

for(i=0;i<26;i++)

{

if(a[i] != 0)

{

printf("%d%c",a[i],i+'A');//数字i加上字母'A',结果也是字母如:2+'A'='C'

}

}

printf("\n");

}

}

扩展:

a[str[i]-'A']++ 如果换成“ a[str[i]-65]++“。效果是一样的。

根据ASCII字符表,'A'对应数字65,以此类推'Z'对应数字90,所以如果str[i]='Z',则a[str[i]-65]=25;

来源:https://www.cnblogs.com/Zhuohome/p/12817080.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值