c语言实现两个字符串的连接(不用strcat函数)
时间: 2024-12-12 18:29:46 浏览: 6
在C语言中,如果你想要实现两个字符串的连接,并且不使用`strcat()`函数,你可以手动分配新的内存空间,然后逐字符地将第一个字符串复制到新空间,最后再追加第二个字符串。以下是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
char* str_concat(char* str1, char* str2) {
int len1 = strlen(str1);
int len2 = strlen(str2);
int total_len = len1 + len2 + 1; // 为了容纳空字符'\0'
// 动态分配足够的内存
char* result = (char*)malloc(total_len * sizeof(char));
// 将str1复制到result
for (int i = 0; i < len1; i++) {
result[i] = str1[i];
}
// 将'\0'添加到str1末尾
result[len1] = '\0';
// 追加str2到result
for (int i = 0; i < len2; i++) {
result[len1 + i] = str2[i];
}
// 结束后也添加'\0'到str2末尾
result[len1 + len2] = '\0'; // 或者直接result[total_len - 1] = '\0';
return result;
}
int main() {
char str1[] = "Hello";
char str2[] = "World!";
char* concatenated_str = str_concat(str1, str2);
printf("Concatenated string: %s\n", concatenated_str); // 输出 HelloWorld!
free(concatenated_str); // 释放动态分配的内存
return 0;
}
```
阅读全文