编写函数strlink(char *s1,char *s2)将s2所指向的字符串连接至s1所指向的字符串之后
时间: 2024-12-16 17:22:37 浏览: 13
在C语言中,你可以编写一个名为`strlink`的函数,它接受两个字符指针`s1`和`s2`作为输入参数,然后通过动态内存分配和字符串拼接的操作,将`s2`指向的字符串连接到`s1`指向的字符串后面。以下是一个简单的示例实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* strlink(char* s1, char* s2) {
// 首先检查s1是否为空,如果为空则直接返回s2
if (!s1) {
return strdup(s2); // 如果s1为空,复制s2并返回
}
// 计算s1和s2的总长度
size_t total_len = strlen(s1) + strlen(s2) + 1; // 加一用于终止符'\0'
// 动态分配足够的空间存放结果
char* result = (char*) malloc(total_len * sizeof(char));
// 将s1复制到结果中
strcpy(result, s1);
// 将s2添加到结果的末尾
strcat(result, s2);
return result;
}
// 示例用法
int main() {
char* str1 = "Hello";
char* str2 = "World!";
char* linked_str = strlink(str1, str2);
printf("Linked string: %s\n", linked_str);
free(linked_str); // 注意释放动态分配的内存
return 0;
}
```
在这个例子中,`strlink`函数会合并两个字符串并将结果返回给调用者。当程序结束时,记得释放之前动态分配的内存以防止内存泄漏。
阅读全文