【问题描述】
从键盘输入两个有序字符串(其中字符按ASCII码从小到大排序,并且不含重复字符),将两字符串合并,要求合并后的字符串仍是有序的,并且重复字符只出现一次,最后输出合并后的结果。
【输入形式】
分行从键盘输入两个有序字符串(每个字符串不超过50个字符)
【输出形式】
输出合并后的有序字符串
【输入样例】
abcdeg
bdfh
【输出样例】
abcdefgh
【样例说明】
输入两个有序字符串abcdeg和bdfh,输出合并后的有序字符串为abcdefgh。
【参考源代码】
#include
#include
#define MAX 50
int main(void)
{
char a[MAX+1],b[MAX+1],c[2*MAX];
int i,j,k,al,bl;
scanf("%s%s",a,b);
al=strlen(a);
bl=strlen(b);
i=j=0;
k=0;
while(i
{
if(a[i]
{
c[k]=a[i];
i++;
k++;
}
else if(a[i]>b[j])
{
c[k]=b[j];
j++;
k++;
}
else
{
c[k]=a[i];
i++;
j++;
k++;
}
}
if(a[i]=='\0'&&b[j]=='\0')
{
c[k]='\0';
}
else if(a[i]=='\0')
{
while(j
{
c[k]=b[j];
k++;
j++;
}
c[k]='\0';
}
else
{
while(i
{
c[k]=a[i];
k++;
i++;
}
c[k]='\0';
}
printf("%s\n",c);
return 0;
}