提交记录 #205
提交时间:2024-11-12 20:00:07
语言:c
状态:Accepted
编译情况:编译成功
固定测试点#1:
固定测试点#2:
固定测试点#3:
固定测试点#4:
固定测试点#5:
固定测试点#6:
固定测试点#7:
固定测试点#8:
固定测试点#9:
额外测试点#3600:
34【字符】合并字符串
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* mergeStrings(const char* str1, const char* str2, size_t* result_len) {
size_t len1 = strlen(str1);
size_t len2 = strlen(str2);
size_t total_len = len1 + len2;
char* merged = (char*)malloc(total_len + 1);
if (merged == NULL) {
perror("malloc");
exit(EXIT_FAILURE);
}
size_t i = 0, j = 0, k = 0;
while (i < len1 && j < len2) {
if (str1[i] <= str2[j]) {
merged[k++] = str1[i++];
} else {
merged[k++] = str2[j++];
}
}
while (i < len1) {
merged[k++] = str1[i++];
}
while (j < len2) {
merged[k++] = str2[j++];
}
merged[k] = '\0';
*result_len = k;
return merged;
}
int main() {
char str1[100]={0}, str2[100]={0};
scanf("%s",str1);
str1[strcspn(str1, "\n")] = '\0';
scanf("%s",str2);
str2[strcspn(str2, "\n")] = '\0';
size_t result_len;
char* merged_str = mergeStrings(str1, str2, &result_len);
printf("%s\n", merged_str);
free(merged_str);
return 0;
}