c++ wstring 转char *
时间: 2023-12-22 11:03:41 浏览: 74
wstring转string
5星 · 资源好评率100%
下面是将C++ wstring转换为char*的示例代码:
```cpp
#include <iostream>
#include <string>
#include <locale>
#include <codecvt>
int main() {
std::wstring wstr = L"Hello, world!"; // 定义一个wstring
std::wstring_convert<std::codecvt_utf8<wchar_t>> conv; // 定义一个wstring_convert对象
std::string str = conv.to_bytes(wstr); // 将wstring转换为string
const char* cstr = str.c_str(); // 将string转换为char*
std::cout << cstr << std::endl; // 输出结果:Hello, world!
return 0;
}
```
上述代码中,我们使用了`std::wstring_convert`类来进行转换。首先,我们定义了一个`std::wstring`对象`wstr`,并将其初始化为`L"Hello, world!"`。然后,我们定义了一个`std::wstring_convert`对象`conv`,并指定了其模板参数为`std::codecvt_utf8<wchar_t>`,这个模板参数表示我们要将`wchar_t`类型转换为`UTF-8`编码的`char`类型。接着,我们调用`conv.to_bytes`函数将`wstr`转换为`std::string`类型的`str`。最后,我们调用`str.c_str()`函数将`str`转换为`const char*`类型的`cstr`,并输出其值。
阅读全文