输入两个字符串,实现将字符串2插入到字符串1的指定位c语言代码
时间: 2023-08-31 17:44:03 浏览: 152
### 回答1:
以下是一个简单的实现:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str1[100], str2[100];
int pos;
printf("请输入第一个字符串:");
scanf("%s", str1);
printf("请输入第二个字符串:");
scanf("%s", str2);
printf("请输入插入位置:");
scanf("%d", &pos);
int len1 = strlen(str1);
int len2 = strlen(str2);
// 检查插入位置是否合法
if (pos < 0 || pos > len1) {
printf("插入位置不合法\n");
return 0;
}
// 将字符串2插入到字符串1的指定位置
for (int i = len1; i >= pos; i--) {
str1[i + len2] = str1[i];
}
for (int i = 0; i < len2; i++) {
str1[pos + i] = str2[i];
}
printf("插入后的字符串为:%s\n", str1);
return 0;
}
```
注意,这里没有考虑字符串长度超出数组长度的情况,实际使用时需要根据具体需求进行处理。
### 回答2:
下面是一个示例的C语言代码,实现将字符串2插入到字符串1的指定位置:
```c
#include <stdio.h>
#include <string.h>
void insertString(char *str1, char *str2, int position) {
int len1 = strlen(str1);
int len2 = strlen(str2);
// 判断插入位置是否合法
if (position < 0 || position > len1) {
printf("插入位置不合法!");
return;
}
// 创建临时字符串来存储插入后的结果
char temp[300];
// 先复制str1的前position个字符到临时字符串temp中
strncpy(temp, str1, position);
temp[position] = '\0'; // 手动添加字符串结束符
// 将str2追加到临时字符串temp中
strcat(temp, str2);
// 将str1剩下的部分追加到临时字符串temp中
strcat(temp, str1 + position);
// 将结果拷贝回原来的字符串str1
strcpy(str1, temp);
}
int main() {
char str1[300], str2[300];
int position;
printf("请输入字符串1:");
fgets(str1, sizeof(str1), stdin);
str1[strlen(str1) - 1] = '\0'; // 去除输入字符串中的换行符
printf("请输入字符串2:");
fgets(str2, sizeof(str2), stdin);
str2[strlen(str2) - 1] = '\0'; // 去除输入字符串中的换行符
printf("请输入插入位置:");
scanf("%d", &position);
insertString(str1, str2, position);
printf("插入后的字符串为:%s\n", str1);
return 0;
}
```
这段代码中,我们使用了`strncpy`函数来复制字符串1的前position个字符到临时字符串中,使用`strcat`函数将字符串2追加到临时字符串后面,然后将剩余的字符串1追加到临时字符串中,最后将临时字符串拷贝回字符串1。最后输出插入后的字符串1。
### 回答3:
下面是一个用C语言实现的将字符串2插入到字符串1的指定位置的代码:
```c
#include <stdio.h>
#include <string.h>
void insertString(char* str1, char* str2, int pos) {
int len1 = strlen(str1);
int len2 = strlen(str2);
int newLen = len1 + len2;
// 创建一个新的字符串,长度为原字符串1的长度加上字符串2的长度加1(加1是为了留出一个位置给字符串2)
char newStr[newLen + 1];
// 将字符串1的前pos个字符复制到新的字符串中
strncpy(newStr, str1, pos);
// 将字符串2复制到新的字符串中的第pos个位置
strncpy(newStr + pos, str2, len2);
// 将字符串1剩下的字符复制到新的字符串的对应位置
strncpy(newStr + pos + len2, str1 + pos, len1 - pos);
// 在新的字符串的最后添加一个空字符,以表示字符串的结束
newStr[newLen] = '\0';
// 输出结果
printf("插入后的字符串为:%s\n", newStr);
}
int main() {
char str1[100], str2[100];
int pos;
printf("请输入字符串1:");
scanf("%s", str1);
printf("请输入字符串2:");
scanf("%s", str2);
printf("请输入要插入的位置:");
scanf("%d", &pos);
insertString(str1, str2, pos);
return 0;
}
```
你可以根据自己的需要修改代码中的相关部分,比如可以改变输入方式、输出方式等,以适应你的具体需求。
阅读全文