class-notes/2208/C语言/源码/字符串-3.c
2025-03-17 18:51:31 +08:00

70 lines
1.3 KiB
C

#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