处理字符串
时间限制
1S
内存限制
1000Kb
问题描述
从键盘输入一个字符串,将该字符串按下述要求处理后输出:
将ASCII码大于原首字符的各字符按原来相互间的顺序关系集中在原首字符的左边,
将ASCII码小于等于原首字符的各字符按升序集中在原首字符的右边。
输入说明
输入一行字符串,字符串c不长度超过100.
输出说明
输出处理后的一行字符串
输入样例
aQWERsdfg7654!@#$hjklTUIO3210X98aY
输出样例
sdfghjkla!#$0123456789@EIOQRTUWXYa
思路:似乎很easy 但是本人太蒻了 error无数次 只好瞟一下
#include<stdio.h>
#include<string.h>
void sort(char c[])
{
int i,j;
int len = strlen(c);
char temp;
for (i = 0; i < len; i++)
for (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,i;
char s;
scanf("%s", a);
len = strlen(a);
s = a[0];
for (i = 1; i < len; i++)
{
if (a[i] > s)
b[j++] = a[i];
if (a[i] <= s)
c[k++] = a[i];
}
sort(c);
for (i = 0; i < j; i++)
printf("%c", b[i]);
printf("%c", s);
for (i = 0; i < k; i++)
printf("%c", c[i]);
printf("\n");
return 0;
}