问题:字符串排序
编写一个程序,将输入字符串中的符按如下规则排序。
规则1:英文字母从A到Z排列,不区分大小写。
如输入:Type 输出epTy
规则2:同一个英文字母的大小写同时存在时,按照输入顺序排列。
如,输入:BabA 输出:aABb
规则3:非英文字母的其他字符保持原来的位置。
如,输入:By?e 输出Be?y
#include<iostream>
#include<string>
#include<ctype.h>
using namespace std;
int main()
{
string str;
getline(cin,str);
int N=str.size();
for(int i=1;i<=N-1;i++)
for(int j=N-1;j>=i;j--)
{
int k=j;
if(isalpha(str[j]))
{
while(!isalpha(str[k-1]))
k--;
if(tolower(str[k-1])>tolower(str[j]))
{
char temp=str[k-1];
str[k-1]=str[j];
str[j]=temp;
}
}
else
continue;
}
cout<<str<<endl;
}