c语言中将两个输入的字符串连接不用strcat
时间: 2024-10-06 08:03:35 浏览: 36
在C语言中,如果不想直接使用`strcat()`函数来连接两个字符串,可以手动创建一个新的字符数组,并逐个复制源字符串的内容。下面是一个示例:
```c
#include <stdio.h>
#include <string.h>
void string_concat(char *dest, const char *src) {
// 获取源字符串长度
size_t src_len = strlen(src);
// 计算目标字符串加上src的总长度 + 1(为了留出终止符'\0')
size_t dest_len = strlen(dest) + src_len + 1;
// 动态分配内存给新的字符串
char new_dest[dest_len];
// 将源字符串复制到新数组
for (size_t i = 0; i < src_len; i++) {
new_dest[i] = src[i];
}
// 添加终止符
new_dest[src_len] = '\0';
// 将新字符串的内容复制到原dest指针指向的位置
memmove(dest, new_dest, dest_len);
}
int main() {
char str1[] = "Hello, ";
char str2[] = "World!";
char result[strlen(str1) + strlen(str2) + 1]; // 初始化足够的空间
string_concat(result, str1);
string_concat(result + strlen(result), str2);
printf("%s\n", result); // 输出 "Hello, World!"
return 0;
}
阅读全文