怎样统计字符串中各字母的个数?

就好似输入abccbc输出为a一个,b二个,c三个.怎样用C++实现?不太明白,可否注解一下... 就好似输入abccbc
输出为a一个,b二个,c三个.
怎样用C++实现?
不太明白,可否注解一下
展开
 我来答
敲響鍵盤
推荐于2018-04-19 · TA获得超过463个赞
知道小有建树答主
回答量:615
采纳率:0%
帮助的人:291万
展开全部
这个有点困难哦,主要是问题很简单啦.要case 26次就行了.
想了一下,要CASE来解决的话,要26个大写与26个小写,共52个CASE.下面是用指针来操作,在VC6里面测试可以通过.
#include<iostream.h>
#include <string.h>
#include <stdio.h>
const int N=50;
void main()
{
char array[N],*p;
int i,letter[52]={0},*pw;//52个存储大写与小写字母
cout<<"Input a string:"<<endl;
p=gets(array);pw=letter;//1
for(;(p-array)<int(strlen(array));pw=letter,p++)//2
if(*p>='a'&&*p<='z') (*(pw+*p-'a'))++;
else if(*p>='A'&&*p<='Z') (*(pw+26+*p-'A'))++;
for(i=0;i<52;i++)//这里输出letter[0]-letter[51],大于零个的就输出
if(i<26&&letter[i]>0) cout<<"small letter: "<<char(i+'a')<<"="<<letter[i]<<endl;
else if(letter[i]>0) cout<<"Strong letter: "<<char(i+'A'-26)<<"="<<letter[i]<<endl;
}
//1 //2是指指针从array[0]到涉猎字符串尾大写与小写的统计.加A减26等是跟据字符在ASCII中的值来计算的.数据的跨越幅度很大,指针遍历也很多不知道这样解释能不能看得懂.
自由的菜鸟
2008-01-07 · TA获得超过2736个赞
知道大有可为答主
回答量:1657
采纳率:0%
帮助的人:1301万
展开全部
#include<stdio.h>
#define N 50
#define SIZE 128
void input(char [],int);
void tongji(char [],int [],int,int);
void output(int [],int);
main()
{
char string[N];
int frequency[SIZE]={0};
printf("请输入长度不超过50的任意字符串,以'#'结束:\n");
input(string,N);
tongji(string,frequency,N,SIZE);
output(frequency,SIZE);
system("pause");
return 0;
}

void input(char string[],int n)
{
char ch;
int i=0;
scanf("%c",&ch);
while(ch!='#'){
string[i]=ch;
i++;
scanf("%c",&ch);
}
string[i]='\0';
}

void tongji(char string[],int frequency[],int n,int size)
{
int i=0;
while(string[i]!='\0'){
frequency[string[i]]++;
i++;
}
}

void output(int frequency[],int size)
{
int i;
i='A';
while(i>='A'&&i<='Z'){
if(frequency[i]!=0){
printf("%d个%c\n",frequency[i],(char)i);
}
i++;
}
i='a';
while(i>='a'&&i<='z'){
if(frequency[i]!=0){
printf("%d个%c\n",frequency[i],(char)i);
}
i++;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
想起绛株
2008-01-07 · TA获得超过977个赞
知道答主
回答量:420
采纳率:0%
帮助的人:0
展开全部
用C语言写的你要不要
要的话我再来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式