C语言如何把两个字符串合在一起
时间: 2024-09-17 20:03:30 浏览: 74
在C语言中,你可以通过动态内存分配和字符数组操作来将两个字符串合并。这里有一个基本的例子:
```c
#include <stdio.h>
#include <stdlib.h> // 引入malloc函数
// 函数声明
char* concatStrings(char* str1, char* str2);
int main() {
char* str1 = "Hello";
char* str2 = "World";
// 调用concatStrings函数
char* result = concatStrings(str1, str2);
// 打印合并后的字符串
printf("Concatenated string: %s\n", result);
// 释放内存
free(result);
return 0;
}
// 定义字符串合并函数
char* concatStrings(char* str1, char* str2) {
// 计算总长度,包括结束符'\0'
int len1 = strlen(str1);
int len2 = strlen(str2);
int totalLen = len1 + len2 + 1; // 加一是因为需要额外的空间放结束符
// 动态分配内存
char* combinedStr = (char*) malloc(totalLen * sizeof(char));
// 将第一个字符串复制到新位置
memcpy(combinedStr, str1, len1);
// 结束符后追加第二个字符串
combinedStr[len1] = '\0'; // 在原字符串末尾添加结束符
memcpy(combinedStr + len1 + 1, str2, len2); // 将str2拼接到combinedStr上
return combinedStr;
}
```
在这个例子中,`concatStrings`函数接收两个字符串指针,计算它们的总长度并动态创建一个新的足够大的数组来存储结果。然后它会复制第一个字符串,添加结束符,最后将第二个字符串附加上去。
阅读全文