c语言连接两个字符串,不用strcat
时间: 2024-12-11 16:34:50 浏览: 14
在C语言中,连接两个字符串而不用`strcat`函数可以手动通过循环逐字符复制实现。以下是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
// 自定义字符串连接函数
char* concatStrings(char *str1, char *str2) {
int len1 = strlen(str1);
int len2 = strlen(str2);
// 动态分配足够的内存
char* result = (char*)malloc(len1 + len2 + 1); // 加1是为了存储'\0'
if (result == NULL) {
printf("Memory allocation failed.\n");
return NULL;
}
// 将str1复制到结果
memcpy(result, str1, len1);
// 结束str1后的'\0'后面开始复制str2
for (int i = 0; i < len2; i++) {
result[len1] = str2[i]; // 直接覆盖
len1++; // 更新结果的长度
}
result[len1] = '\0'; // 添加字符串结束符
return result;
}
int main() {
char str1[] = "Hello, ";
char str2[] = "world!";
char* combinedStr = concatStrings(str1, str2);
if (combinedStr != NULL) {
printf("%s\n", combinedStr);
free(combinedStr); // 释放动态分配的内存
} else {
return 1;
}
return 0;
}
```
阅读全文