从键盘上先后读入两个字符串,假定存储在字符数组s1和s2中。注意,这两个字符串最长均可达到26个字符、最短均可为0个字符。将字符串s2插入字符串s1中,生成一个新的字符串s。插入方法为s2的第i个字符插入到原s1的第i个字符后,如果s2比s1(假定s1的长度为L1)长,则s2的第L1个字符开始到s2结尾的所有字符按在s2中的顺序放在新生成的字符串s之后。用指针完成程序。
时间: 2023-05-21 14:02:09 浏览: 88
可以使用以下代码来实现将字符串 s2 插入字符串 s1 中的操作:
```
#include <stdio.h>
#include <string.h>
int main() {
char s1[27], s2[27]; // 假设存储在字符数组 s1 和 s2 中
char *p1, *p2, *p3; // 声明三个指针
int L1, L2; // 声明两个变量
// 从键盘上读入两个字符串
printf("请输入第一个字符串:");
gets(s1);
printf("请输入第二个字符串:");
gets(s2);
L1 = strlen(s1); // 计算字符串 s1 的长度
L2 = strlen(s2); // 计算字符串 s2 的长度
// 在字符串 s1 的末尾添加 L2 - L1 个字符
for (p1 = s1 + L1, p2 = s1 + L1 + L2 - L1; p1 <= p2; p1++)
*p1 = ' ';
*(p1 + 1) = '\0'; // 添加结束符
// 将字符串 s2 插入字符串 s1 中
for (p1 = s1 + L1, p2 = s2, p3 = s1; p1 <= p2; p1++, p3++)
*p1 = *p3;
for (; *p2 != '\0'; p1++, p2++)
*p1 = *p2;
*p1 = '\0'; // 添加结束符
// 输出新生成的字符串 s
printf("新生成的字符串:%s\n", s1);
return 0;
}
```
代码的工作流程如下:
1. 从键盘上读入两个字符串 s1 和 s2。
2. 计算字符串 s1 的长度 L1,计算字符串 s2
阅读全文