std::stringstream 转char *
时间: 2023-06-12 07:08:19 浏览: 267
可以使用 `std::stringstream` 对象的 `str()` 方法获取其内部的字符串,然后使用 `c_str()` 方法将其转换为 `const char*` 类型的指针,最终可以再将其转换为 `char*` 类型的指针,例如:
```cpp
#include <iostream>
#include <sstream>
int main() {
std::stringstream ss;
ss << "Hello, world!";
std::string str = ss.str();
char* cstr = new char[str.length() + 1];
std::strcpy(cstr, str.c_str());
std::cout << cstr << std::endl;
delete[] cstr;
return 0;
}
```
在上面的示例代码中,首先使用 `std::stringstream` 对象 `ss` 向其中写入了一个字符串 "Hello, world!",然后通过 `str()` 方法获取其内部存储的字符串并赋值给 `std::string` 对象 `str`。接着,使用 `new` 运算符在堆上分配了一块内存,其大小为 `str.length() + 1`,并将指向该内存的指针赋值给 `char*` 类型的指针 `cstr`。最后,使用 `std::strcpy()` 函数将 `str.c_str()` 返回的 `const char*` 类型的指针指向的字符串复制到 `cstr` 指向的内存中,并使用 `std::cout` 输出 `cstr` 指向的字符串。最后,使用 `delete[]` 运算符释放了 `cstr` 指向的内存。
阅读全文