设计函数char *insert(str,substr,n),用指针实现在字符串str中的指定位置n处插入字符串substr。代码
时间: 2024-05-07 10:23:05 浏览: 77
Python 实现字符串中指定位置插入一个字符
以下是实现该功能的函数代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *insert(char *str, char *substr, int n) {
int len1 = strlen(str);
int len2 = strlen(substr);
int i, j;
// 创建一个新字符串,用于存储插入后的结果
char *result = (char *)malloc((len1 + len2 + 1) * sizeof(char));
if (!result) {
printf("Memory allocation failed\n");
exit(1);
}
// 将原始字符串的前n个字符复制到新字符串中
for (i = 0; i < n && i < len1; i++) {
result[i] = str[i];
}
// 将要插入的子字符串复制到新字符串中
for (j = 0; j < len2; j++) {
result[i+j] = substr[j];
}
// 将原始字符串剩余的部分复制到新字符串中
for (j = n; j < len1; j++) {
result[i+j] = str[j];
}
// 在新字符串的末尾添加终止符
result[len1 + len2] = '\0';
return result;
}
int main() {
char str[100] = "Hello, world!";
char substr[100] = "beautiful ";
char *result = insert(str, substr, 6);
printf("%s\n", result);
free(result);
return 0;
}
```
在这个函数中,我们首先计算了原始字符串和要插入的子字符串的长度,然后创建了一个新的字符串来存储插入后的结果。接着,我们将原始字符串的前n个字符复制到新字符串中,然后将要插入的子字符串复制到新字符串中,最后将原始字符串剩余的部分复制到新字符串中。在新字符串的末尾添加终止符,然后返回新字符串的指针。
在main函数中,我们使用了这个函数来将一个字符串插入到另一个字符串的指定位置,并打印出结果。然后,我们释放了动态分配的内存,以避免内存泄漏。
阅读全文