帮我用c++写一个使用指针变量将一个字符串拼接到另一个字符串的后面(不能使用拼接函数)(比如 “abcfe” 后面拼接"12345",成为"abcfe 12345")
时间: 2024-10-06 19:02:17 浏览: 23
PTA 6-13 函数实现字符串逆序
在C++中,你可以通过使用指针和字符数组来手动拼接两个字符串,不使用标准库的`std::string`或`+=`操作。下面是一个简单的示例:
```cpp
#include <iostream>
// 函数声明,用于拼接字符串
void concatStrings(char* str1, char* str2, char** result);
int main() {
// 定义两个字符串
char str1[] = "abcfe";
char str2[] = "12345";
// 初始化结果字符串指针为str1的结束位置加一
char* result = str1 + strlen(str1); // strlen获取str1的长度
// 拼接str2到result
for (char* p = str2; *p != '\0'; ++p) {
*(result++) = *p;
}
*result = '\0'; // 结束符'\0'
// 输出结果
std::cout << "Concatenated string: " << str1 << " " << str2 << "\n";
return 0;
}
// 函数实现
void concatStrings(char* str1, char* str2, char** result) {
*result = str1; // 将str1的地址赋给结果指针
}
```
在这个例子中,我们首先计算出`str1`的结束位置并将其赋值给`result`,然后遍历`str2`并将每个字符逐个复制到`result`指向的位置,最后添加一个空字符作为新的字符串结束标志。
注意:这个代码片段假设输入字符串是有效的,并且不会越界。在实际应用中,你可能需要添加额外的错误检查。
阅读全文