(1)输入两个字符串,实现将字符串2插入到字符串1 的指定位置(该位置由有用户输入)c语言
时间: 2023-12-24 16:05:09 浏览: 30
好的,我可以帮你写这个程序。首先,需要让用户输入两个字符串和插入位置,可以使用以下代码实现:
```c
#include <stdio.h>
#include <string.h>
int main() {
char string1[100], string2[100];
int index;
printf("请输入字符串1:");
fgets(string1, 100, stdin);
printf("请输入字符串2:");
fgets(string2, 100, stdin);
printf("请输入插入位置:");
scanf("%d", &index);
```
接下来,需要将字符串2插入到字符串1的指定位置。可以使用字符串函数 `strcat` 和 `strcpy` 来实现,具体代码如下:
```c
// 去掉字符串1中的换行符
if (string1[strlen(string1)-1] == '\n') {
string1[strlen(string1)-1] = '\0';
}
// 将字符串2插入到字符串1的指定位置
char temp[100];
strcpy(temp, string1+index);
strcpy(string1+index, string2);
strcat(string1, temp);
printf("插入后的字符串为:%s", string1);
return 0;
}
```
这里的 `temp` 是一个临时的字符串,用来保存字符串1中从插入位置开始的后缀部分。然后,将字符串2拷贝到插入位置处,最后再将后缀部分拼接到字符串1后面即可。
完整代码如下:
```c
#include <stdio.h>
#include <string.h>
int main() {
char string1[100], string2[100];
int index;
printf("请输入字符串1:");
fgets(string1, 100, stdin);
printf("请输入字符串2:");
fgets(string2, 100, stdin);
printf("请输入插入位置:");
scanf("%d", &index);
// 去掉字符串1中的换行符
if (string1[strlen(string1)-1] == '\n') {
string1[strlen(string1)-1] = '\0';
}
// 将字符串2插入到字符串1的指定位置
char temp[100];
strcpy(temp, string1+index);
strcpy(string1+index, string2);
strcat(string1, temp);
printf("插入后的字符串为:%s", string1);
return 0;
}
```
希望这个程序能够帮到你!