合并字符串.c 1020 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #include <stdio.h>
  2. #include <string.h>
  3. void str_bin(char str1[], char str2[]) {
  4. int len1 = strlen(str1);
  5. int len2 = strlen(str2);
  6. char result[len1 + len2 + 1]; // 合并后的字符串
  7. int i = 0, j = 0, k = 0;
  8. // 合并两个有序字符串
  9. while (i < len1 && j < len2) {
  10. if (str1[i] < str2[j]) {
  11. result[k++] = str1[i++];
  12. } else {
  13. result[k++] = str2[j++];
  14. }
  15. }
  16. // 将剩余的字符复制到结果字符串
  17. while (i < len1) {
  18. result[k++] = str1[i++];
  19. }
  20. while (j < len2) {
  21. result[k++] = str2[j++];
  22. }
  23. result[k] = '\0'; // 添加字符串结束符
  24. // 将结果复制回str1
  25. strcpy(str1, result);
  26. }
  27. int main() {
  28. char str1[201]; // 确保足够的空间存储合并后的结果
  29. char str2[101];
  30. scanf("%100s", str1);
  31. scanf("%100s", str2);
  32. // 调用合并函数
  33. str_bin(str1, str2);
  34. // 输出合并后的有序字符串
  35. printf("%s\n", str1);
  36. return 0;
  37. }