处理字符串
问题描述
从键盘输入一字符串,将该字符串按下述要求处理后输出:将大于原首字符的各字符按原来相互间的顺序关系集中在原首字符的左边,小于等于原首字符的各字符按升序集中在原首字符的右边。
输入说明
输入只有一行字符串,字符串当读不超过100
输出说明
输出只有一行字符串
输入样例
aQWERsdfg7654!@#$hjklTUIO3210X98aY
输出样例
问题描述
从键盘输入一字符串,将该字符串按下述要求处理后输出:将大于原首字符的各字符按原来相互间的顺序关系集中在原首字符的左边,小于等于原首字符的各字符按升序集中在原首字符的右边。
输入说明
输入只有一行字符串,字符串当读不超过100
输出说明
输出只有一行字符串
输入样例
aQWERsdfg7654!@#$hjklTUIO3210X98aY
输出样例
sdfghjkla!#$0123456789@EIOQRTUWXYa
#pragma warning(disable:4996)
#include<stdio.h>
#include<string.h>
void sort(char c[])
{
int len = strlen(c);
char temp;
for (int i = 0; i < len; i++)
for (int j = 0; j < len - 1 - i;j++)
if (c[j]>c[j + 1])
{
temp = c[j];
c[j] = c[j + 1];
c[j + 1] = temp;
}
}
int main()
{
如果数组a b c没有等于0,则会产生乱码
char a[100] = { 0 }, b[100] = { 0 }, c[100] = { 0 };
int len,j=0,k=0;
char s;
scanf("%s", a);
len = strlen(a);
s = a[0];
for (int i = 1; i < len; i++)
{
if (a[i] > s)
b[j++] = a[i];
if (a[i] <= s)
c[k++] = a[i];
}
sort(c);
for (int i = 0; i < j; i++)
printf("%c", b[i]);
printf("%c", s);
for (int i = 0; i < k; i++)
printf("%c", c[i]);
printf("\n");
return 0;
}