编写一个函数char * str_bin(char* str1, char* str2), str1、str2是两个有序字符串

编写一个函数char*str_bin(char*str1,char*str2),str1、str2是两个有序字符串(其中字符按ASCII码从小到大排序),将str2合并到... 编写一个函数char * str_bin(char* str1, char* str2),
str1、str2是两个有序字符串(其中字符按ASCII码从小到大排序),将str2合并到字符串str1中,要求合并后的字符串仍是有序的,允许字符重复。在main函数中测试该函数:从键盘输入两个有序字符串,然后调用该函数,最后输出合并后的结果。

#include<stdio.h>
#include<string.h>
char str_bin(char str1[],char str2[]);
int main(void)
{

char str1[80],str2[80];
gets(str1);
gets(str2);
str_bin(str1,str2);
puts(str1);
return 0;
}
char str_bin(char str1[], char str2[])
{
char temp;
int i,j;
strcat(str1,str2);
for(j=0;str1[j]!='\0';j++)
{

for(i=0;str1[i]!='\0';i++)
if(str1[i]>str1[i+1])
{
temp=str1[i];
str1[i]=str1[i+1];
str1[i+1]=temp;
}
}
}

哪里错了,帮忙修改一下
展开
 我来答
妖皇sky8
2015-06-19
知道答主
回答量:1
采纳率:0%
帮助的人:1240
展开全部
#include<stdio.h>
void str_bin(char str1[],char str2[],int j,int i);
int main(void)
{
char str1[100],str2[100],m;
int j=0,i=0;
while((str1[j]=getchar())!='\n') j++;str1[j]='/0';
while((str2[i]=getchar())!='\n') i++;str2[i]='/0';
str_bin(str1,str2,j,i);
for(m=0;m<j+i;m++) printf("%c",str1[m]);
return 0;
}
void str_bin(char str1[], char str2[],int j,int i)
{ char temp;
int n,m;
for(n=j,m=0;n<j+i,m<i;n++,m++) str1[n]=str2[m];
for(m=0;m<j+i-1;m++)
for(n=m+1;n<j+i;n++)
if(str1[m]>str1[n])
{ temp=str1[m]; str1[m]=str1[n]; str1[n]=temp;}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式