C++编程实现两字符串的连接,要求使用字符数组保存字符串,不使用系统函数。
时间: 2024-10-18 10:19:46 浏览: 14
C++不使用变量求字符串长度strlen函数的实现方法
在C++中,不使用系统函数直接操作字符数组实现字符串连接,可以采用手动分配内存、逐个字符追加的方式。这里是一个简单的例子:
```cpp
#include <iostream>
// 定义一个用于连接字符串的函数
void concatenateStrings(char* str1, char* str2, char* result) {
int len1 = strlen(str1);
int len2 = strlen(str2);
// 首先计算总长度并加上终止符'\0'
int totalLength = len1 + len2 + 1;
// 检查是否有足够的空间存放结果,如果不够则动态扩容
if (totalLength > *result) {
char* temp = new char[totalLength];
delete[] result; // 清理旧的空间
result = temp;
}
// 将str1复制到result
for (int i = 0; i < len1; ++i) {
result[i] = str1[i];
}
// 添加分隔符
result[len1] = '\0';
// 追加str2
for (int j = 0; j < len2; ++j) {
result[len1 + 1 + j] = str2[j];
}
// 结束符
result[len1 + len2] = '\0';
}
int main() {
char str1[] = "Hello";
char str2[] = "World!";
char result[50]; // 假设我们假设结果的最大长度为49,包括结束符
concatenateStrings(str1, str2, result);
std::cout << "Concatenated string: " << result << std::endl;
return 0;
}
```
在这个示例中,我们首先计算两个输入字符串的长度,然后在`result`字符数组中相应的位置添加它们,并在最后添加结束符`\0`。
阅读全文