C++中怎么用指针实现两个字符串首尾链接
时间: 2024-10-13 20:16:37 浏览: 40
在C++中,你可以通过指针操作来实现两个字符串的首尾链接。假设我们有两个字符串`str1`和`str2`,可以创建一个新的字符数组并分别指向它们的首字符。然后将`str2`的结束指针(即最后一个字符的下一个位置)设置为新的字符串数组的开始位置。下面是一个简单的示例:
```cpp
#include <cstring>
void linkStrings(char* str1, char* str2) {
// 获取str1和str2的长度
int len1 = strlen(str1);
int len2 = strlen(str2);
// 创建一个新的动态数组来存储链接后的字符串
char* combinedStr = new char[len1 + len2 + 1]; // 加1是为了放上终止符'\0'
// 将str1复制到combinedStr
std::strcpy(combinedStr, str1);
// 将str2的首地址添加到str1的末尾
memcpy(combinedStr + len1, str2, len2); // 注意这里不需要加'\0',因为memcpy会自动添加
// 结束指针设置为新字符串的结束位置
combinedStr[len1 + len2] = '\0';
// 输出或使用新链接的字符串
std::cout << "Linked strings: " << combinedStr << std::endl;
// 清理内存
delete[] combinedStr;
}
// 示例用法
int main() {
char str1[] = "Hello";
char str2[] = "World!";
linkStrings(str1, str2);
return 0;
}
```
在这个例子中,`linkStrings`函数会连接`str1`和`str2`,形成`"HelloWorld!"`。记得在完成操作后释放动态分配的内存,防止内存泄漏。
阅读全文