#include <stdio.h> #include <string.h> <<<<<<< HEAD int main(){ char str[100]; char subStr[100]; int i, j, index; gets(str); gets(subStr); scanf("%d", &index); i=strlen(subStr) + strlen(str);//主串+子串=两个合并后的结束符位置 str[i] = '\0'; i--;//13->i-3 -> i for(j=strlen(str)-1;j>=index;j--){ str[i--] = str[j]; } // for(i=0;i<strlen(subStr);i++){ // str[index+i] =subStr[i]; // } puts(str); return 0; } ======= int main() { char str1[200], str2[100]; int i, j, index; printf("请输入主字符串:"); fgets(str1, sizeof(str1), stdin); str1[strcspn(str1, "\n")] = '\0'; // 去除换行符 printf("请输入要插入的字符串:"); fgets(str2, sizeof(str2), stdin); str2[strcspn(str2, "\n")] = '\0'; // 去除换行符 printf("请输入要插入的位置:"); scanf("%d", &index); int len1 = strlen(str1); int len2 = strlen(str2); // 检查插入位置是否有效 if (index < 0 || index > len1) { printf("插入位置无效\n"); return 1; } // 移动字符以腾出空间 for (i = len1; i >= index; i--) { str1[i + len2] = str1[i]; } // 插入 str2 for (j = 0; j < len2; j++) { str1[index + j] = str2[j]; } printf("插入后的字符串: %s\n", str1); return 0; } >>>>>>> 1843d42e7e825deacd49772a204a39bc2f132820