在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
函數接受兩個參數str1
和str2
,分別是要拼接的兩個字符串。首先,計算兩個字符串的長度。然后,使用malloc
函數動態分配足夠的內存來存儲拼接后的結果。接著,使用strcpy
函數將第一個字符串拷貝到結果字符串中,再使用strcat
函數將第二個字符串追加到結果字符串的末尾。最后,返回結果字符串的指針。
在main
函數中,定義了兩個要拼接的字符串str1
和str2
,并將它們作為參數傳遞給str_concat
函數。然后,將返回的結果字符串打印出來。最后,使用free
函數釋放動態分配的內存。
輸出結果為:Hello World!
。