输入一个长度为N的字符串A,从其第K个字符起,插入长度为M的字符串B,输出新的长度为N+M的字符串,其中N、M均小于100,且K<=N使用C语言
时间: 2024-03-12 13:50:10 浏览: 58
好的,下面是一个示例的C语言代码实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
char *insert_string(char *A, char *B, int K, int M) {
int len_A = strlen(A);
int len_B = strlen(B);
if (len_A + len_B >= MAX_LEN) {
// 防止溢出
printf("Error: The length of the new string exceeds the maximum limit!\n");
return NULL;
}
if (K > len_A) {
// K超出A的范围
printf("Error: The insertion position K is out of range!\n");
return NULL;
}
// 将B插入到A中
memmove(A + K + len_B, A + K, len_A - K + 1);
memcpy(A + K, B, len_B);
return A;
}
int main() {
char A[MAX_LEN + 1] = "abcdefghijk";
char B[MAX_LEN + 1] = "1234";
int K = 3;
int M = strlen(B);
char *result = insert_string(A, B, K, M);
if (result != NULL) {
printf("%s\n", result); // 输出:abc1234defghijk
}
return 0;
}
```
这个函数会将字符串B插入到字符串A的第K个字符后面,然后返回新的字符串A。需要注意的是,在进行字符串操作时,我们需要防止溢出,所以代码中加入了一些判断条件。如果有任何问题或不足之处,请随时提出,我会尽力回答。
阅读全文