主题:求解
编写函数将两个升序排列的字符串(串长<81)融合成一个字符串,融合后的字符串仍然是升序排列的。
输入描述:
输入两升序字符串
输出描述描述:
融合后的字符串 (含回车符)
样式输入:
acefi
bdfg
样式输出:
abcdeffgi
#include<stdio.h>
#include<string.h>
int main()
{
char a[81],b[81],c[100];
char *pa,*pb;
int i=0,j=0,k=0,t1,t2;
gets(a);
gets(b);
pa=a;
pb=b;
t1=strlen(a);
t2=strlen(b);
while(pa<(pa+t1) && pb<(pb+t2))
{
if(*pa<*pb)
{
c[j]=*pa;
j++;
pa++;
}
else if(*pa>*pb)
{
c[j]=*pb;
j++;
pb++;
}
else
{
c[j]=*pa;
k++;
j++;
pa++;
}
}
c[j+1]='\0';
for(i=0;i<t1+t2-k;i++)
{
printf("%c",c[i]);
}
return 0;
}
我写得不对,请求修改,谢谢!
输入描述:
输入两升序字符串
输出描述描述:
融合后的字符串 (含回车符)
样式输入:
acefi
bdfg
样式输出:
abcdeffgi
#include<stdio.h>
#include<string.h>
int main()
{
char a[81],b[81],c[100];
char *pa,*pb;
int i=0,j=0,k=0,t1,t2;
gets(a);
gets(b);
pa=a;
pb=b;
t1=strlen(a);
t2=strlen(b);
while(pa<(pa+t1) && pb<(pb+t2))
{
if(*pa<*pb)
{
c[j]=*pa;
j++;
pa++;
}
else if(*pa>*pb)
{
c[j]=*pb;
j++;
pb++;
}
else
{
c[j]=*pa;
k++;
j++;
pa++;
}
}
c[j+1]='\0';
for(i=0;i<t1+t2-k;i++)
{
printf("%c",c[i]);
}
return 0;
}
我写得不对,请求修改,谢谢!