C语言:输入2个字符串S1、S2,把S2插入到S1的第K个字符之后。S1、S2串原始长度均不超过30,插入后S1长度不超过60。 输入格式: 输入包括三行,依次是S1、S2,k。 输出格式: 输出S1,最后换行。
时间: 2024-05-01 12:20:17 浏览: 54
C语言字符串的输入和输出
```c
#include <stdio.h>
#include <string.h>
int main() {
char s1[31], s2[31];
int k, len1, len2, i;
// 输入字符串s1、s2和插入位置k
scanf("%s%s%d", s1, s2, &k);
len1 = strlen(s1);
len2 = strlen(s2);
// 判断插入位置是否合法
if (k < 0 || k > len1) {
printf("插入位置不合法\n");
return 0;
}
// 将s2插入到s1的第k个字符之后
for (i = len1; i >= k; i--) {
s1[i + len2] = s1[i]; // 后移len2个位置
}
for (i = 0; i < len2; i++) {
s1[k + i] = s2[i]; // 插入s2
}
printf("%s\n", s1);
return 0;
}
```
注意:
1. 输入的字符串长度不超过30,因此可以定义字符数组长度为31,用于存储字符串。
2. 插入位置k的范围是0~len1,如果k小于0或大于len1,插入位置不合法。
3. 在将s2插入到s1的第k个字符之后时,需要先将s1中从第k个字符开始的所有字符后移len2个位置,以腾出插入空间。
阅读全文