题目描述 已知两个字符a和b中的字符已经按照升序排序,将两个字符串a和b合并到字符串c中,使得c串中的字符仍然有序 方法1: a和b并入c,再对c排序 方法2: 把a和b中的字符逐个有序的放入c中 方法3: 把a数组放入c中,再将b中的字符逐个插入c合理的位置上。 注意:字符串函数gets,puts 输入 第一行输入字符串a 第二行输入字符串b 输出 字符串c 样例输入 aceg bdfgh 样例输出 abcdefggh
时间: 2024-02-05 22:13:44 浏览: 21
方法2和方法3都可以实现合并后保持有序的功能,但方法2需要额外的排序操作,效率较低,因此推荐使用方法3。
以下是C++的示例代码实现:
```cpp
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char a[101], b[101], c[201]; // 定义字符数组
cin.getline(a, 101); // 输入字符串a
cin.getline(b, 101); // 输入字符串b
int len_a = strlen(a), len_b = strlen(b);
int i = 0, j = 0, k = 0;
while (i < len_a && j < len_b) { // 遍历字符串a和b
if (a[i] < b[j]) { // 将a中的字符放入c中
c[k++] = a[i++];
} else { // 将b中的字符放入c中
c[k++] = b[j++];
}
}
while (i < len_a) { // 将a中剩余的字符放入c中
c[k++] = a[i++];
}
while (j < len_b) { // 将b中剩余的字符放入c中
c[k++] = b[j++];
}
puts(c); // 输出字符串c
return 0;
}
```
输入样例:
```
aceg
bdfgh
```
输出样例:
```
abcdefggh
```