用指针函数,将两个字符串连接起来
时间: 2024-05-02 14:17:30 浏览: 17
可以使用指针函数来实现两个字符串的连接。
下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* concat(char* str1, char* str2);
int main() {
char str1[20] = "Hello, ";
char str2[20] = "world!";
char* result = concat(str1, str2);
printf("%s\n", result);
free(result); // 释放内存
return 0;
}
char* concat(char* str1, char* str2) {
int len1 = strlen(str1);
int len2 = strlen(str2);
char* result = (char*)malloc((len1 + len2 + 1) * sizeof(char)); // 分配内存
if (result == NULL) {
printf("Error: memory allocation failed.\n");
exit(1);
}
strcpy(result, str1);
strcat(result, str2);
return result;
}
```
这个程序定义了一个 `concat()` 函数,该函数接受两个字符串指针参数,并返回一个新的字符串指针,该指针指向连接后的字符串。该函数首先计算两个字符串的长度,然后分配足够的内存来存储连接后的字符串,使用 `strcpy()` 和 `strcat()` 函数将两个字符串拼接起来,最后返回新字符串的指针。在主函数中,我们使用 `concat()` 函数将两个字符串连接起来,并打印结果。注意,在使用完字符串后,需要使用 `free()` 函数释放分配的内存,以避免内存泄漏的问题。