c语言

c语言指针如何实现字符串拼接

小亿
235
2023-10-14 05:36:59
栏目: 编程语言

在C语言中,可以使用指针来实现字符串拼接。以下是一个示例:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* str_concat(const char* str1, const char* str2) {
// 计算两个字符串的长度
size_t len1 = strlen(str1);
size_t len2 = strlen(str2);
// 分配足够的内存来存储两个字符串拼接后的结果
char* result = (char*)malloc((len1 + len2 + 1) * sizeof(char));
// 检查内存分配是否成功
if (result == NULL) {
printf("Memory allocation failed.\n");
exit(1);
}
// 将第一个字符串拷贝到结果字符串中
strcpy(result, str1);
// 将第二个字符串追加到结果字符串后面
strcat(result, str2);
return result;
}
int main() {
const char* str1 = "Hello";
const char* str2 = " World!";
char* result = str_concat(str1, str2);
printf("%s\n", result);
free(result); // 释放内存
return 0;
}

在上面的示例中,str_concat函数接受两个参数str1str2,分别是要拼接的两个字符串。首先,计算两个字符串的长度。然后,使用malloc函数动态分配足够的内存来存储拼接后的结果。接着,使用strcpy函数将第一个字符串拷贝到结果字符串中,再使用strcat函数将第二个字符串追加到结果字符串的末尾。最后,返回结果字符串的指针。

main函数中,定义了两个要拼接的字符串str1str2,并将它们作为参数传递给str_concat函数。然后,将返回的结果字符串打印出来。最后,使用free函数释放动态分配的内存。

输出结果为:Hello World!

0
看了该问题的人还看了