1、使用标准库函数 strcat
strcat
是 C 标准库中的一个函数,用于将一个字符串连接到另一个字符串的末尾。
#include <stdio.h> #include <string.h> int main() { char str1[100] = "Hello, "; char str2[] = "World!"; // 使用标准库函数 strcat 进行字符串连接 strcat(str1, str2); printf("Concatenated String: %s\n", str1); return 0; }
2、手动实现字符串连接
可以手动实现字符串连接函数,而不使用标准库函数。
#include <stdio.h> // 手动实现字符串连接函数 void myStrcat(char *dest, const char *src) { // 找到目标字符串的末尾 while (*dest) { dest++; } // 连接源字符串到目标字符串 while (*src) { *dest = *src; dest++; src++; } // 添加字符串结束符 *dest = '\0'; } int main() { char str1[100] = "Hello, "; char str2[] = "World!"; // 使用自定义函数 myStrcat 进行字符串连接 myStrcat(str1, str2); printf("Concatenated String: %s\n", str1); return 0; }
3、动态内存分配实现字符串连接
使用动态内存分配实现字符串连接,可以避免目标字符串长度不够的问题。
#include <stdio.h> #include <stdlib.h> #include <string.h> // 动态内存分配实现字符串连接函数 char* dynamicStrcat(const char *str1, const char *str2) { // 计算两个字符串的长度 int len1 = strlen(str1); int len2 = strlen(str2); // 分配足够的内存来存储连接后的字符串 char *result = (char *)malloc(len1 + len2 + 1); // 复制第一个字符串到结果字符串 strcpy(result, str1); // 连接第二个字符串到结果字符串 strcat(result, str2); return result; } int main() { char str1[] = "Hello, "; char str2[] = "World!"; // 使用动态内存分配函数 dynamicStrcat 进行字符串连接 char *concatenatedString = dynamicStrcat(str1, str2); printf("Concatenated String: %s\n", concatenatedString); // 释放动态分配的内存 free(concatenatedString); return 0; }