C++中怎样统计一个单词中每个字母出现次数

如上,本人是初学者最好有注释谢谢... 如上,
本人是初学者
最好有注释
谢谢
展开
 我来答
fuchuanblue
2009-10-02 · 超过26用户采纳过TA的回答
知道答主
回答量:77
采纳率:50%
帮助的人:37.7万
展开全部

#include<stdio.h>

void main()

{

 char str[100],sum=0;

 int a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;

 printf("请输入单词,以#表示结束");

 scanf("%s",str);

 while(str[sum]!='#')

 {

  switch(str[sum])

  {

  case 'a':a=a+1;break;

  case 'b':b++;break;

  case 'c':c++;break;

  case 'd':d++;break;

  case 'e':e++;break;

  case 'f':f++;break;

  case 'g':g++;break;

  case 'h':h++;break;

  case 'i':i++;break;

  case 'j':j++;break;

  case 'k':k++;break;

  case 'l':l++;break;

  case 'm':m++;break;

  case 'n':n++;break;

  case 'o':o++;break;

  case 'p':p++;break;

  case 'q':q++;break;

  case 'r':r++;break;

  case 's':s++;break;

  case 't':t++;break;

  case 'u':u++;break;

  case 'v':v++;break;

  case 'w':w++;break;

  case 'x':x++;break;

  case 'y':y++;break;

  case 'z':z++;break;

  } 

  sum++; 

 }

 printf("统计结果:");

 if(a!=0)

  printf("a:%d  ",a);

 if(b!=0)

  printf("b:%d  ",b);

  if(c!=0)

  printf("c:%d  ",c);

 if(d!=0)

  printf("d:%d  ",d);

  if(e!=0)

  printf("e:%d  ",e);

 if(f!=0)

  printf("f:%d  ",f);

  if(g!=0)

  printf("g:%d  ",g);

 if(h!=0)

  printf("h:%d  ",h);

  if(i!=0)

  printf("i:%d  ",i);

 if(j!=0)

  printf("j:%d  ",j);

  if(k!=0)

  printf("k:%d  ",k);

 if(l!=0)

  printf("l:%d  ", l);

  if(m!=0)

  printf("m:%d  ",m);

 if(n!=0)

  printf("n:%d  ",n);

  if(o!=0)

  printf("o:%d  ",o);

 if(p!=0)

  printf("p:%d  ",p);

  if(q!=0)

  printf("q:%d  ",q);

 if(r!=0)

  printf("r:%d  ",r);

  if(s!=0)

  printf("s:%d  ",s);

 if(t!=0)

  printf("t:%d  ",t);

  if(u!=0)

  printf("u:%d  ",u);

 if(v!=0)

  printf("v:%d  ",v);

 if(w!=0)

  printf("w:%d  ",w);

 if(x!=0)

  printf("x:%d  ",x);

 if(y!=0)

  printf("y:%d  ",y);

 if(z!=0)

  printf("z:%d  ",z);

}

滨崎步最爱
推荐于2016-07-11 · TA获得超过665个赞
知道小有建树答主
回答量:705
采纳率:0%
帮助的人:466万
展开全部
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char str[1001];//instore the string
cin>>str;
int sum[26];//用sum存放每个字母对应的出现次数
int i;
for(i=0;i<26;++i)
sum[i]=0;
for(i=0;i<strlen(str);++i)
sum[str[i]-'a']++;//字母每出现一次,对应的sum[i]加1;
//比如str[i]是字母a,则'a'-'a'=0;sum[0]++
for(i=0;i<26;++i)
cout<<char(i+'a')<<" : "<<sum[i]<<endl;//char(i+'a')为sum[i]对应的字母
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
piaoshi111
2009-10-02 · TA获得超过308个赞
知道小有建树答主
回答量:171
采纳率:0%
帮助的人:131万
展开全部
char str[100];
int a[128]={0};//用一个数组记录每个ASCII字符出现的次数(当然在这只需记录大小写英文字母),初始化为0;
cin>>str;
for(int i=0;str[i]!='\0';i++)
a[str[i]]++;//通过ASCII码在对应的数组元素中加1;如str=‘a’,则a[97]++,
a['a']和a[97]是一样的,因为字符也相当于整数,
如果要输出大写或小写字母的出现次数,只需这样查询输出就可以,如cout<<a['A'],cout<<['a'],等等;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友063bb1e59
2009-10-02 · TA获得超过558个赞
知道小有建树答主
回答量:444
采纳率:0%
帮助的人:278万
展开全部
啊啊,1l太强大了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式