
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;
} 展开
#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;
} 展开
1个回答
展开全部
给你重写一个作参考……
//#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;
}
运行样例:
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询