string转xstring
时间: 2023-10-01 08:10:19 浏览: 69
在C++中,可以通过使用`s`构造一个`std::string`对象,并将其转换为`std::wstring`对象,然后再使用`c_str()`方法将其转换回一个以null结尾的C-style字符串,也就是`const wchar_t*`类型。示例如下:
```
#include <iostream>
#include <string>
#include <locale>
int main()
{
std::string s = "hello world";
std::wstring ws(s.begin(), s.end()); // 转换为 wstring 对象
const wchar_t* wcs = ws.c_str(); // 转换回 C-style 字符串
std::wcout.imbue(std::locale("")); // 设置输出流的本地化
std::wcout << wcs << std::endl; // 输出 C-style 字符串
return 0;
}
```
如果需要将`std::wstring`对象转换为`std::string`对象,则可以使用相似的方法。首先将`std::wstring`对象转换为一个以null结尾的C-style字符串,然后再使用`std::string`的构造函数将其转换回一个`std::string`对象。示例如下:
```
#include <iostream>
#include <string>
#include <locale>
int main()
{
std::wstring ws = L"你好,世界";
const wchar_t* wcs = ws.c_str(); // 转换为 C-style 字符串
std::string s(wcs, wcs + ws.size()); // 转换为 string 对象
std::cout << s << std::endl; // 输出 string 对象
return 0;
}
```
阅读全文