问题
编写一个函数将一条字符串分成两部分,将前半部分按ASCII码升序排列,后半部分不变,再将前后两部分交换,最后将该字符串输出。测试字符串“ADZDDJKJFIEJHGI”.
代码
#include <stdio.h>
#include <stdlib.h>
//冒泡排序算法
void mysort(char *str,int num)
{
int i,j;
int temp = 0;
for (i = 0;i<num;i++)
{
for(j = i +1;j<num;j++)
{
if(str[i]<str[j])
{
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
}
}
char *foo(char *str)
{
int len = 0;
char *start = NULL:
if(str == NULL)
{
return NULL:
}
start = str;
while(*str++);
len = str - start -1;
len = len/2;
str = start;
mysort(str,len);
return str;
}
int main()
{
char string[] = "ADZDDJKJFIEJHGI";
printf("%s\n",string);
foo(string);
printf("%s\n",string);
return 0;
}