【问题描述】
编写一个函数void str_bin(char str1[ ], char str2[ ]), str1、str2是两个有序字符串(其中字符按ASCII码从小到大排序),将str2合并到字符串str1中,要求合并后的字符串仍是有序的,允许字符重复。在main函数中测试该函数:从键盘输入两个有序字符串,然后调用该函数,最后输出合并后的结果。
【输入形式】
分行从键盘输入两个有序字符串(不超过100个字符)
【输出形式】
输出合并后的有序字符串
【输入样例】
aceg bdfh
【输出样例】
abcdefgh
【样例说明】
输入两个有序字符串aceg和bdfh,输出合并后的有序字符串abcdefgh
解答:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void bubbleSort(char str[])
{
int len=strlen(str);
char temp;
for(int i=0;i<len;i++)
{
for(int j=0;j<len-i-1;j++)
{
if(str[j]>str[j+1]){
temp=str[j];
str[j]=str[j+1];
str[j+1]=temp;
}
}
}
}
void fun(char str1[],char str2[])
{
char *str=malloc((strlen(str1)+strlen(str2))+1);
if(str==NULL)
{
exit(1);
}
strcpy(str,str1);
strcat(str,str2);
bubbleSort(str);
puts(str);
free(str);
}
int main()
{
char str1[100];
char str2[100];
gets(str1);
gets(str2);
fun(str1,str2);
return 0;
}