字符串排序
描述:输入一个字符串,对英文字母按照ASCII码排序,非英文字母保留原有的位置。输入字符串的长度不超过100.
运行时间限制:无限制
内存限制:无限制
输入:字符串
输出:排序后的字符串
样例输入:Wor#d
样例输出:Wdo#r
答案:
//冒泡法排序
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
getline(cin, str);
int i, j;
int len = str.length();
for (i = 0; i < len - 1; i++)
{
for (j = 0; j < len - i - 1; j++)
{
//每趟找到第一个字母,然后找到该字母后的第一个字母
//对这两个字母比较大小,若为逆序则交换它们
if (isalpha(str[j]))
{
int k = j + 1;
while (!isalpha(str[k]) && k < len - i - 1)
++k;
if (isalpha(str[k]))
{
if (str[j] > str[k])
{
char temp = str[j];
str[j] = str[k];
str[k] = temp;
}
}
}
}
}
cout << str << endl;
return 0;
}