c++字符串添加字符_C编程题——合并字符串

这是一道C++编程题,要求输入两个已按ASCII码排序且无重复字符的字符串,合并成一个新的有序字符串,重复字符仅出现一次。通过读取输入的两个字符串,使用三指针法进行比较并合并,确保合并后的字符串保持排序,然后输出结果。
摘要由CSDN通过智能技术生成

【问题描述】

从键盘输入两个有序字符串(其中字符按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;

}

4222a27c281aacced23939698f29e090.png

8cbab59486867104049da1274f008a44.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值