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;
}