123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #include <stdio.h>
- #include <string.h>
- void str_bin(char str1[], char str2[]) {
- int len1 = strlen(str1);
- int len2 = strlen(str2);
- char result[len1 + len2 + 1]; // 合并后的字符串
- int i = 0, j = 0, k = 0;
- // 合并两个有序字符串
- while (i < len1 && j < len2) {
- if (str1[i] < str2[j]) {
- result[k++] = str1[i++];
- } else {
- result[k++] = str2[j++];
- }
- }
- // 将剩余的字符复制到结果字符串
- while (i < len1) {
- result[k++] = str1[i++];
- }
- while (j < len2) {
- result[k++] = str2[j++];
- }
- result[k] = '\0'; // 添加字符串结束符
- // 将结果复制回str1
- strcpy(str1, result);
- }
- int main() {
- char str1[201]; // 确保足够的空间存储合并后的结果
- char str2[101];
- scanf("%100s", str1);
- scanf("%100s", str2);
- // 调用合并函数
- str_bin(str1, str2);
- // 输出合并后的有序字符串
- printf("%s\n", str1);
- return 0;
- }
|