编写一个程序,将一个字符串s2插入到字符串s1中,其起始插入位置为n。其中0≤n≤strlen(s1),两个字符串长度均不超过100。 程序首先读入一个整数n,然后是两个字符串s1和s2, 输入格式要求:"%d" "%s %s" 使用scanf读入两个字符串 输出格式要求:"%s" 程序运行示例如下:
时间: 2024-02-12 09:04:51 浏览: 68
以下是一个示例程序,可以实现将字符串s2插入到字符串s1中指定位置n的功能:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 101
int main() {
int n;
char s1[MAX_LEN], s2[MAX_LEN];
scanf("%d%s%s", &n, s1, s2);
int len1 = strlen(s1);
int len2 = strlen(s2);
// 如果n超过了s1的长度,直接将s2附加到s1末尾
if (n >= len1) {
strcat(s1, s2);
}
// 否则将s2插入到s1的指定位置
else {
// 将s1的第n个字符后面的部分移到s1的末尾
memmove(s1 + n + len2, s1 + n, len1 - n + 1);
// 将s2插入到s1的指定位置
strncpy(s1 + n, s2, len2);
}
printf("%s\n", s1);
return 0;
}
```
程序首先读入整数n和两个字符串s1和s2,然后计算它们的长度。如果n超过了s1的长度,则将s2附加到s1末尾。否则,使用`memmove`函数将原始字符串的第n个字符后面的部分移到s1的末尾,然后使用`strncpy`函数将s2插入到s1的指定位置。最后输出结果字符串即可。
阅读全文