题目描述
输入一个字符串,长度小于等于200,然后将输出按字符顺序升序排序后的字符串。
输入
测试数据有多组,输入字符串。
输出
对于每组输入,输出处理后的结果。
样例输入 Copy
tianqin
样例输出 Copy
aiinnqt
提示
注意输入的字符串中可能有空格。
思想:直接遍历字符数组的内部,该代码类似‘双指针算法’
AC代码
#include<cstdio>
#include<cstring>
using namespace std;
char str[200];
int main()
{
while (gets(str) != NULL)
{
for (int i = 0;i < strlen(str) - 1;i++)
{
for (int j = i + 1;j < strlen(str);j++)
{
if (str[i] > str[j])
{
char temp = str[j];
str[j] = str[i];
str[i] = temp;
}
}
}
puts(str);
memset(str,0,sizeof str);
}
return 0;
}
需要注意的是,gets会忽略空格,按行读入,scanf读到空格就停止读入,所以以下代码是不能过题的
#include<cstdio>
#include<cstring>
using namespace std;
char str[200];
int main()
{
while (scanf("%s",str) != EOF)
{
for (int i = 0;i < strlen(str) - 1;i++)
{
for (int j = i + 1;j < strlen(str);j++)
{
if (str[i] > str[j])
{
char temp = str[j];
str[j] = str[i];
str[i] = temp;
}
}
}
for (int i = 0;i < strlen(str);i++) printf("%c",str[i]);
memset(str,0,sizeof str);
}
return 0;
}