输入两个字符串,连接成一个字符串,并输出。用指针实现。运用new和delete
时间: 2024-10-20 07:08:34 浏览: 43
在指定的位置删除一个字符串_delphi_初学者_字符串_
在C++中,可以使用指针和动态内存分配(new 和 delete)来连接两个字符串。这里是一个简单的例子:
```cpp
#include <iostream>
using namespace std;
// 动态分配字符串内存
char* concatenateStrings(const char* str1, const char* str2) {
// 获取两个字符串的长度之和 + 1(包括终止符'\0')
int totalLength = strlen(str1) + strlen(str2) + 1;
// 使用new动态分配足够的空间
char* result = new char[totalLength]; // 指向新分配的空间
// 将两个字符串连接起来
strcpy(result, str1); // 复制str1到结果
strcat(result, str2); // 连接str2
return result; // 返回指向新字符串的指针
}
int main() {
const char* str1 = "Hello";
const char* str2 = " World!";
char* combinedStr = concatenateStrings(str1, str2);
cout << "Combined string: " << combinedStr << endl; // 输出结果: Hello World!
// 释放动态分配的内存
delete[] combinedStr;
return 0;
}
```
在这个示例中,`concatenateStrings` 函数首先计算总长度,然后使用 `new` 分配相应大小的字符数组。接着,它使用 `strcpy` 和 `strcat` 函数将输入的两个字符串连接起来。最后,在主函数中打印结果并记得使用 `delete[]` 来删除动态分配的内存,避免内存泄漏。
阅读全文