处理字符串
时间限制
1S
内存限制
1000Kb
问题描述
从键盘输入一个字符串,将该字符串按下述要求处理后输出:
将ASCII码大于原首字符的各字符按原来相互间的顺序关系集中在原首字符的左边,
将ASCII码小于等于原首字符的各字符按升序集中在原首字符的右边。
输入说明
输入一行字符串,字符串c不长度超过100.
输出说明
输出处理后的一行字符串
输入样例
aQWERsdfg7654!@#$hjklTUIO3210X98aY
输出样例
sdfghjkla!#$0123456789@EIOQRTUWXYa
#include <stdio.h>
#include <string.h>
int main()
{
int i = 0,cnt = 0,j = 0,flag=0,flag1=0;
char arr[100],arr1[100],arr2[100];
gets(arr);
int ret = strlen(arr);
for(i=0;i<ret;i++)
{
if(arr[0]>=arr[i])
{
if(i!=0)
{
arr1[flag]=arr[i];
flag++;
}
}
else
{
if(i!=0)
{
arr2[flag1]=arr[i];
flag1++;
}
}
}
for(i=0;i<flag-1;i++)
{
for(j=0;j<flag-i-1;j++)
{
if(arr1[j]>arr1[j+1])
{
char c = arr1[j];
arr1[j]=arr1[j+1];
arr1[j+1]=c;
}
}
}
for(i=0;i<flag1;i++)
{
printf("%c",arr2[i]);
}
printf("%c",arr[0]);
for(i=0;i<flag;i++)
{
printf("%c",arr1[i]);
}
return 0;
}
思路不行,debug也很久,printf参数加了个&找了半天,,
我真的哭死了