题解 | #字符串排序#
字符串排序
https://www.nowcoder.com/practice/5190a1db6f4f4ddb92fd9c365c944584
#include<stdio.h>
#include<string.h>
#define MAX 1001
int main()
{
char str[MAX]={0};
int len;
int i;
char j;
char map[MAX]={0};
int index =0;
while (gets(str) != NULL)
{
len =strlen(str);
//printf("%d\n",len);
for(j='A';j<='Z';j++) //想按字母输出,就先按字母输入.用字母表对输入的str检索,一共1001个位置,检索到就往里填
{
for(i=0;i<len;i++) //以字母表的顺序,在str里搜索,有就填进去
{
if(str[i]==j || str[i]-32 ==j)
{
//printf("%c %c\n",str[i],str[i]-32);
map[index++]=str[i];
}
}
}
index =0;
for(i=0;i<len;i++)
{
if((str[i]>='a' && str[i]<='z') || (str[i]>='A' && str[i]<='Z'))
{
str[i]=map[index++];
}
printf("%c",str[i]);
}
}
return 0;
}
#include<string.h>
#define MAX 1001
int main()
{
char str[MAX]={0};
int len;
int i;
char j;
char map[MAX]={0};
int index =0;
while (gets(str) != NULL)
{
len =strlen(str);
//printf("%d\n",len);
for(j='A';j<='Z';j++) //想按字母输出,就先按字母输入.用字母表对输入的str检索,一共1001个位置,检索到就往里填
{
for(i=0;i<len;i++) //以字母表的顺序,在str里搜索,有就填进去
{
if(str[i]==j || str[i]-32 ==j)
{
//printf("%c %c\n",str[i],str[i]-32);
map[index++]=str[i];
}
}
}
index =0;
for(i=0;i<len;i++)
{
if((str[i]>='a' && str[i]<='z') || (str[i]>='A' && str[i]<='Z'))
{
str[i]=map[index++];
}
printf("%c",str[i]);
}
}
return 0;
}