题解 | #字符串排序#
字符串排序
https://www.nowcoder.com/practice/5190a1db6f4f4ddb92fd9c365c944584
#include <stdio.h>
int main()
{
char arr1[1000]="";
char arr2[1000]="";//备份arr1
gets(arr1);
int sz=strlen(arr1);
int i=0;
int j=0;
int num=0;
for(i=0;i<sz;i++)
{
arr2[i]=arr1[i];
}
while(num<26)//26个字母逐一判断
{
for(i=0;i<sz;i++)
{
if((arr1[i] == ('a'+num)) || (arr1[i] == ('A'+num)))//26轮,一轮查询一个
{
while(1)//在arr2里面找字母的位置,找到就替换,其余符号没变
{
if(((arr2[j] >= 'A') && (arr2[j] <= 'Z')) || ((arr2[j] >= 'a') && (arr2[j] <= 'z')))
{
arr2[j]=arr1[i];
j++;//下一轮方便直接替换
break;//替换完成,arr1中找下一个字母
}
j++;//非字母的位置不动,判断下一个位置
}
}
}
num++;
}
printf("%s\n",arr2);
return 0;
}

