编写函数 strlink(char *s1,char *s2),将s2所指向的字符串连接至s1 所指向的字符串之后。
时间: 2024-09-09 15:00:53 浏览: 65
`strlink` 函数是一个用于连接两个 C 字符串的常见操作。它通常涉及到动态内存管理,因为我们需要确保目标字符串有足够的空间来接收源字符串。这里是一个简单的函数原型和示例实现:
```c
#include <stdio.h>
#include <stdlib.h> // 包含 malloc 和 realloc 功能
// 假设我们已经定义了 char* 类型的指针类型和 NULL 常量
void strlink(char **result, char *s1, char *s2) {
if (*result == NULL) { // 如果结果字符串还没初始化,先分配内存
*result = (char*)malloc(strlen(s1) + 1); // 分配空间存放s1
} else { // 如果结果已存在,需要先将其内容复制到新位置,然后添加s2
size_t new_size = strlen(*result) + strlen(s2) + 1;
*result = (char*)realloc(*result, new_size); // 拷贝并扩展空间
}
strcat(*result, s2); // 连接 s2 至 s1 的末尾
// 为了防止内存泄漏,如果原始字符串不是通过 malloc 分配的,记得释放它
if (s1 != NULL && s1 != result[0]) {
free(s1);
}
}
// 使用示例
int main() {
char *s1 = "Hello, ";
char *s2 = "World!";
char *result;
strlink(&result, s1, s2);
printf("Combined string: %s\n", result); // 输出 "Hello, World!"
free(result); // 释放内存
return 0;
}
```
阅读全文