C语言输入两个字符串,实现将字符串2插入到字符串1 的指定位置(该位置由有用户输入)。 (如字符串1为:“abcdefg”,字符串2为“1234”,指定位置为3,操作后字符串1 为“ab1234cdefg”。程序中只允许定义2个字符串)
时间: 2023-12-22 22:03:16 浏览: 34
可以按照以下代码实现将字符串2插入到字符串1的指定位置:
```
#include <stdio.h>
#include <string.h>
int main() {
int pos;
char str1[100], str2[100], temp[100];
printf("请输入字符串1:");
scanf("%s", str1);
printf("请输入字符串2:");
scanf("%s", str2);
printf("请输入插入位置:");
scanf("%d", &pos);
int len1 = strlen(str1);
if (pos < 0 || pos > len1) {
printf("插入位置不合法!");
return 0;
}
strcpy(temp, &str1[pos]);
str1[pos] = '\0';
strcat(str1, str2);
strcat(str1, temp);
printf("插入后的字符串为:%s", str1);
return 0;
}
```
运行结果如下:
```
请输入字符串1:abcdefg
请输入字符串2:1234
请输入插入位置:3
插入后的字符串为:ab1234cdefg
```
相关问题
C语言输入两个字符串,实现将字符串2插入到字符串1的指定位置
可以先输入要插入的位置,然后使用字符串函数将字符串2插入到字符串1的对应位置。具体实现如下:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str1[100], str2[50];
int pos;
printf("请输入第一个字符串:");
gets(str1);
printf("请输入第二个字符串:");
gets(str2);
printf("请输入要插入的位置:");
scanf("%d", &pos);
int len1 = strlen(str1);
int len2 = strlen(str2);
// 将字符串2插入到字符串1的指定位置
memmove(str1 + pos + len2, str1 + pos, len1 - pos + 1);
memcpy(str1 + pos, str2, len2);
printf("插入后的字符串为:%s\n", str1);
return 0;
}
```
说明:
1. 使用 `gets()` 函数输入字符串,避免了输入空格的问题。
2. 使用 `scanf()` 函数输入要插入的位置。
3. 使用 `strlen()` 函数获取字符串的长度。
4. 使用 `memmove()` 函数将字符串1的指定位置后面的内容往后移动,为插入字符串2腾出空间。
5. 使用 `memcpy()` 函数将字符串2插入到字符串1的指定位置。
C语言输入两个字符串,实现将字符串2插入到字符串1 的指定位置(该位置由有用户输入)。
可以按照以下步骤实现将字符串2插入到字符串1的指定位置:
1. 首先要获取用户输入的插入位置,可以使用scanf函数实现,如:
```
int pos;
printf("请输入插入位置:");
scanf("%d", &pos);
```
2. 接着要获取用户输入的两个字符串,也可以使用scanf函数实现,如:
```
char str1[100], str2[100];
printf("请输入字符串1:");
scanf("%s", str1);
printf("请输入字符串2:");
scanf("%s", str2);
```
3. 然后要判断用户输入的插入位置是否合法,即大于等于0且小于等于字符串1的长度,如:
```
int len1 = strlen(str1);
if (pos < 0 || pos > len1) {
printf("插入位置不合法!");
return 0;
}
```
4. 接下来要将字符串2插入到字符串1的指定位置,可以使用strcpy函数和strcat函数实现,如:
```
char temp[100];
strcpy(temp, &str1[pos]); // 先将插入位置后面的字符串复制到临时数组中
str1[pos] = '\0'; // 将字符串1的插入位置处设置为结束符,即截断字符串1
strcat(str1, str2); // 将字符串2插入到字符串1的插入位置处
strcat(str1, temp); // 将临时数组中的字符串复制回字符串1中
```
这里需要注意的是,先将插入位置后面的字符串复制到临时数组中,是因为后面的字符串会被覆盖掉,需要先保存起来。
5. 最后输出结果即可,如:
```
printf("插入后的字符串为:%s", str1);
```
完整代码如下: