c语言已知串s和串t,在串s第n个位置之前插入串t
时间: 2024-01-24 15:17:11 浏览: 131
串的创建及KMP算法.docx
可以通过以下步骤实现:
1. 计算插入后新串的长度,即为原串s的长度加上串t的长度。
2. 动态分配内存,申请新串的空间。
3. 将串s的前n个字符复制到新串中。
4. 将串t复制到新串中。
5. 将串s第n个字符及其后面的字符复制到新串中。
6. 释放原来串s的空间。
7. 返回新串的指针。
以下是一个示例代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *insert_string(char *s, char *t, int n)
{
int len_s = strlen(s);
int len_t = strlen(t);
int len_new = len_s + len_t;
char *new_str = (char *)malloc((len_new + 1) * sizeof(char));
strncpy(new_str, s, n); // 复制s的前n个字符到新串中
new_str[n] = '\0';
strcat(new_str, t); // 连接串t到新串中
strcat(new_str, s + n); // 复制s第n个字符及其后面的字符到新串中
free(s); // 释放原来串s的空间
return new_str;
}
int main()
{
char s[] = "hello, world!";
char t[] = "beautiful ";
int n = 6;
char *new_str = insert_string(s, t, n);
printf("%s", new_str); // 输出新串
free(new_str); // 释放新串的空间
return 0;
}
```
输出结果为:
```
hello, beautiful world!
```
阅读全文