用c++实现两字符串的连接,要求使用字符数组保存字符串,不要使用系统函数
时间: 2024-12-20 10:30:07 浏览: 9
在C++中,如果你想要用字符数组连接两个字符串并且避免使用系统库函数如`strcat`,你可以手写一个简单的函数来实现这个功能。这里有一个示例:
```cpp
#include <cstring> // 需要用到strlen函数获取字符串长度
// 函数用于将源串追加到目标串的末尾
void concatenateStrings(char* target, char* source) {
// 获取目标字符串的当前长度
size_t targetLength = strlen(target);
// 计算新的目标字符串长度,包括源串结束的'\0'
size_t newSize = targetLength + strlen(source) + 1;
// 检查是否有足够的空间在目标数组中添加源串
if (newSize > sizeof(target)) {
std::cerr << "Target buffer too small to hold the concatenated string." << std::endl;
return;
}
// 将源串追加到目标数组
for (size_t i = 0; i < strlen(source); ++i) {
target[targetLength + i] = source[i]; // 直接写入源串字符
}
target[newSize - 1] = '\0'; // 结束字符串,添加'\0'
}
int main() {
char target[100], source[100];
strcpy(target, "Hello "); // 设置初始目标字符串
strcpy(source, "World!"); // 设置初始源字符串
concatenateStrings(target, source); // 连接字符串
std::cout << "Concatenated String: " << target << std::endl;
return 0;
}
```
注意:这个例子假设输入的字符串长度不会超过预设的字符数组大小。如果需要处理更复杂的情况,例如动态调整目标数组大小,你可能需要使用动态内存分配。
阅读全文