点击打开链接
#include<iostream>
#include<string>
//#include<stdio.h>
using namespace std;
struct Elem{
int c;
int count;
};
void main(){
Elem a[256];
char input[256];
for (int i = 0; i < 256; i++){
a[i].c = i;
a[i].count = 0;
}
gets_s(input);
char *p = input;
while (*p != '\0'){ //记录输入的字符,每个字符出现的个数
if (*p >= 'a'&&*p <= 'z' || *p >= 'A'&&*p <= 'Z' || *p >= '0'&&*p <= '9' || *p == ' '){
a[*p].count++;
p++;
}
}
Elem t;
for (int i = 0; i < 255; i++){ //把次数多的放到前面,用结构体的话,不但交换了次数,连带c,既ASC码也交换了。
for (int j = 0; j < 255 - i; j++){
if (a[j].count < a[j + 1].count){
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}
int i = 0;
while (a[i].count != 0){
cout << char(a[i].c) << " ";
i++;
}
cout << endl;
system("pause");
}