c语言 实现统计字符串中字符出现的种类 个数,例如a出现了三次,b出现了五次…

 我来答
kaixingui2012
推荐于2017-12-16 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6836万
展开全部
一般有效字符不会超过127个,所以定义一个128位的数组,其下标可对应每个字符的ascii码,根据字符串,对数组每个元素进行累加,可得各字符出现的频率。
追问
有没有简洁一点的方法…难道要写128个case嘛
追答
#include <stdio.h>
int main()
{
   int a[128]={0};
   int i;
   char str[256];
   printf("input str: ");
   gets(str);
   for( i=0;str[i]!='\0';i++ )
   {
        if ( str[i] < 127 )
            a[str[i]]++;
        else
            a[127]++;
   }
   for( i=0;i<128;i++ )
       if ( a[i] > 0 )
           printf("%d: %d\n", i, a[i] );
   return 0;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a1012144015
2015-09-09 · TA获得超过6416个赞
知道大有可为答主
回答量:9038
采纳率:40%
帮助的人:1421万
展开全部
用字符数组或者字符指针都可以呀,字符用for循环或者指针遍历,进行统计,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
旅初彤2B
2015-09-09 · TA获得超过2.6万个赞
知道大有可为答主
回答量:4.4万
采纳率:65%
帮助的人:5799万
展开全部
要是Java就方便了,有个substring方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式