c++编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。
时间: 2024-12-16 20:16:05 浏览: 9
在 C++ 中,如果你想手动连接两个字符串而不使用系统提供的字符串库函数(如 `std::string` 或 `strcat`),可以采用以下步骤:
1. 首先,你需要预估最终字符串的长度,包括原始字符串和第二个字符串的长度以及必要的空字符(`\0`)用于表示字符串结束。
2. 分别初始化两个字符数组 `str1` 和 `str2` 存储你的字符串。
3. 定义一个新的字符数组 `result`,大小比 `str1` 和 `str2` 的长度之和大一,用于存放结果。
4. 使用循环逐个复制 `str1`、空字符(`\0`)、`str2` 的内容到 `result` 中。以下是示例代码:
```cpp
#include <iostream>
void concatenate(char* str1, int len1, char* str2, int len2, char* result) {
// 复制第一个字符串到结果
for (int i = 0; i < len1; ++i) {
result[i] = str1[i];
}
// 结束符
result[len1] = '\0';
// 复制第二个字符串到结果
for (int j = 0; j < len2; ++j) {
result[len1 + 1 + j] = str2[j]; // 注意索引从len1+1开始,避免覆盖'\0'
}
// 结束整个字符串
result[len1 + 1 + len2] = '\0';
}
int main() {
const int MAX_LEN = 100;
char str1[MAX_LEN] = "Hello, ";
char str2[MAX_LEN] = "World!";
char result[MAX_LEN * 2];
// 计算并连接字符串
concatenate(str1, strlen(str1), str2, strlen(str2), result);
std::cout << "Concatenated string: " << result << std::endl;
return 0;
}
```
阅读全文