用c++实现两字符串的连接,要求使用字符数组保存字符串,不要使用系统函数。
时间: 2024-12-21 11:29:50 浏览: 8
在C++中,你可以通过手动操作字符数组来实现两个字符串的连接。首先,你需要分配足够大的空间来存储两个字符串和它们之间的分隔符。下面是一个简单的示例:
```cpp
#include <iostream>
// 定义一个辅助函数用于复制字符串到目标数组
void copyString(const char* src, char* dest, size_t len) {
for (size_t i = 0; i < len; ++i) {
if (src[i] == '\0') break;
dest[i] = src[i];
}
dest[len] = '\0'; // 添加结束符
}
// 主函数实现字符串连接
char* concatenateStrings(const char* str1, const char* str2) {
// 计算总长度,包括空字符
size_t totalLength = strlen(str1) + strlen(str2) + 2;
// 动态分配字符数组
char* result = new char[totalLength];
// 将第一个字符串复制到结果数组
copyString(str1, result, strlen(str1));
// 添加分隔符
result[strlen(str1)] = '\0';
result[strlen(str1) + 1] = '\0';
// 将第二个字符串复制到结果数组
copyString(str2, &result[strlen(str1)], strlen(str2));
return result;
}
int main() {
char* str1 = "Hello";
char* str2 = "World";
char* concatenatedStr = concatenateStrings(str1, str2);
std::cout << "Concatenated String: " << concatenatedStr << std::endl;
// 一定要记得释放内存
delete[] concatenatedStr;
return 0;
}
```
在这个例子中,`concatenateStrings` 函数接收两个字符串作为输入,计算总长度并创建一个新的字符数组。然后它分别复制两个输入字符串和插入一个分隔符(这里是空字符),最后返回新的字符串。
阅读全文