c语言编程:将一个子字符串s2插入到主字符串s1当中,起始插入位置为n,保证两个串之和不超过80,并在一行上输出新串s1的内容,输出单独占一行
时间: 2023-12-30 07:02:12 浏览: 41
以下是代码实现:
```c
#include <stdio.h>
#include <string.h>
int main() {
char s1[81], s2[81];
int n;
printf("请输入主字符串s1:\n");
fgets(s1, 81, stdin);
printf("请输入子字符串s2:\n");
fgets(s2, 81, stdin);
printf("请输入插入位置n:\n");
scanf("%d", &n);
int len1 = strlen(s1) - 1; // 去掉换行符
int len2 = strlen(s2) - 1;
// 判断两个串之和是否超过80
if (len1 + len2 > 80) {
printf("两个串之和超过80!\n");
return 0;
}
// 将s1中从位置n开始的字符向后移动len2个位置
for (int i = len1; i >= n; i--) {
s1[i + len2] = s1[i];
}
// 将s2插入到s1的n位置处
for (int i = 0; i < len2; i++) {
s1[n + i] = s2[i];
}
printf("%s\n", s1);
return 0;
}
```
输入主字符串s1、子字符串s2和插入位置n后,程序会先判断两个串之和是否超过80,如果超过就输出提示信息,否则将s1中从位置n开始的字符向后移动len2个位置,再将s2插入到s1的n位置处,最后输出新串s1的内容。