利用标志位进行记录,无需排序。
#include<stdio.h>
#include<string.h>
int main(){
int mark[128]={0};
char str[1001]={'\0'};
while(~scanf("%s",&str)){
int len=strlen(str);
for(int i=0;i<len;i++){
mark[(int)str[i]]++; //利用顺序标志位计数
}
for(int j=0;j<128;j++){
if(mark[j]!=0){
for(int k=mark[j];k>0;k--)
printf("%c",j);
}
}printf("\n");
}
}