C++如何实现统计一个字符串中字符的个数并且存入数组之中,以下是我的代码,可是运行不成功大佬们麻烦看看

#include<iostream>#include<string.h>usingnamespacestd;voidcount(char*str,char*a,int*b... #include<iostream>
#include<string.h>
using namespace std;
void count(char *str,char *a,int *b,int n)
{
int i,j,k,t,m=1;
int tr=1;
a[m]=str[0];

for(j=0;j<n;j++)
if(a[m]==str[j])
b[m]+=1;
m++;//m=2

for(i=1;str[t+1]!=NULL;i++)
{
a[m]=str[i];
t=i;

for(k=1;k<=m-1&&t<n;k++)
{
if(a[m]==a[k])
{
a[m]=str[++t];
tr=0;
k=0;
}
else
tr=1;
}
if(tr)
{
for(j=0;j<n;j++)
if(a[m]==str[j])
b[m]+=1;
}
m++;

}

}
int main()
{

char a[50];
int b[50]={0};
char str[30];
cin>>str;
int n=strlen(str);
count(str,a,b,n);
for(int i=1;a[i]!=NULL;i++)
cout<<"字母 "<<a[i]<<"出现的次数:"<<b[i]<<endl;
return 0;
}
展开
 我来答
White_MouseYBZ
2018-11-10 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:7302万
展开全部

给你重写一个作参考……

//#include "stdafx.h"//If the vc++6.0, with this line.
#include <iostream>
using namespace std;
void count(char *str,int *b){
char ch;
int i;
for(i=0;i<27;b[i++]=0);
for(i=0;str[i];i++)
(ch=str[i]&0xDF)>='A' && ch<='Z' ? b[ch-'A']++ : b[26]++;
}
int main(int argc,char *argv[]){
int b[27]={0};
char str[300];
cout << "Please enter a string...\n";
cin >> str;
count(str,b);
for(int i=0;i<26;i++)
if(b[i])
cout << "字母 " << char(i+'A') << "出现的次数:" << b[i] << endl;
cout << "其他? " << "出现的次数:" << b[26] << endl;
return 0;
}

运行样例:

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式