您的位置:首页 > 其它

华为机试——字符统计

2016-01-10 13:58 323 查看

输入一个字符串,对字符串中的各个英文字符,数字,空格进行统计(可反复调用),按照统计个数的多少输出统计结果,如果统计的个数相同,则按照ACSII码由小到大排序输出。调用者会保证:输入的字符串以’\0’结尾

#include<iostream>
#include<algorithm>

using namespace std;
struct Count
{
int c;
int count;
};
bool cmp(const struct Count& a,const struct Count& b)
{
if(a.count==b.count)
return a.c<b.c;
else
return
a.count>b.count;
}

int main()
{
struct Count a[256];
char b[200];
for(int i=0;i<256;i++)
{
a[i].c=i;
a[i].count=0;
}
gets(b);
for(int i=0;b[i]!='\0';i++)
{
if(b[i]>='a' && b[i]<='z' || b[i]>='A' && b[i]<='Z'|| b[i]>= '0' && b[i] <='9'||b[i]==' ')
{
unsigned char temp=b[i];
a[temp].count++;
}
}
sort(a,a+256,cmp);
for(int i=0;i<256;i++)
{
if(a[i].count != 0)
cout<<char(a[i].c);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: