输入一个无重复字符的字符串,按照数字,大写字母,小写字母排序
//计数排序(空间换时间)
#include <stdio.h>
void Fun(char* str){
char table[128]={0};
for(int i=0;str[i]!='\0';i++){
table[str[i]]=1; //将字符转换成数字(通过ascii码),存在则标志位置1
}
for(int j=0;j<128;j++){
if(table[j]==1){
*str=j; //j为字符的ascii值
str++;
}
}
}
int main(){
char str[1000]={0};
scanf("%s",str);
Fun(str);
printf("%s",str);
return 0;
}
输入一个可能有重复字符的字符串,按照数字,大写字母,小写字母排序
#include <stdio.h>
void Fun(char* str){
char table[128]={0};
for(int i=0;str[i]!='\0';i++){
table[str[i]]+=1; //将字符转换成数字(通过ascii码),存在则标志位置1
}
for(int j=0;j<128;j++){
while(table[j]>0){
*str=j; //j为字符的ascii值
str++;
table[j]--;
}
}
}
int main(){
char str[1000]={0};
scanf("%s",str);
Fun(str);
printf("%s",str);
return 0;
}