编写一个实现c语言中字符串的拼接的函数
时间: 2024-04-29 15:21:52 浏览: 101
下面是一个简单的实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* str_concat(char* str1, char* str2) {
int len1 = strlen(str1);
int len2 = strlen(str2);
char* result = (char*)malloc(len1 + len2 + 1); // 分配足够的内存
if (result == NULL) {
printf("Error: Failed to allocate memory for string concatenation!\n");
return NULL;
}
strcpy(result, str1); // 拷贝第一个字符串
strcat(result, str2); // 拼接第二个字符串
return result;
}
int main() {
char str1[] = "Hello, ";
char str2[] = "World!";
char* result = str_concat(str1, str2);
if (result != NULL) {
printf("%s\n", result);
free(result); // 记得释放内存
}
return 0;
}
```
这里我们使用了标准库中的 `strlen`、`strcpy` 和 `strcat` 函数,其中 `strlen` 用于获取字符串长度,`strcpy` 用于拷贝字符串,`strcat` 用于拼接字符串。我们首先计算出两个字符串的长度,然后分配足够的内存用于存储拼接后的结果,再将第一个字符串拷贝到结果中,最后将第二个字符串拼接到结果中。注意,我们需要在结果的末尾加上一个空字符 `\0`,因此我们为 `malloc` 分配的内存大小为 `len1 + len2 + 1`。
阅读全文