📅  最后修改于: 2023-12-03 15:09:21.573000             🧑  作者: Mango
在C++中字符串有多种类型,包括char*
、std::string
和wchar_t*
等。如果需要将这些字符串类型转换为wstring
,可以使用以下方法。
wstring
类有一个构造函数,允许从char*
或wchar_t*
类型构造一个wstring
对象。可以使用以下方法将char*
或std::string
转换为wstring
:
std::string str = "Hello, world!";
std::wstring wstr(str.begin(), str.end());
或者使用以下方法将wchar_t*
转换为wstring
:
const wchar_t* wstr = L"Hello, world!";
std::wstring wstrObj(wstr);
wstringstream
是一个处理wchar_t*
字符串的输入/输出流。可以使用以下方法将char*
或std::string
转换为wstring
:
std::string str = "Hello, world!";
std::wstringstream wss;
wss << str.c_str();
std::wstring wstr = wss.str();
如果你在Windows平台上工作,你可以使用WideCharToMultiByte和MultiByteToWideChar函数将char*
和std::string
转换为wchar_t*
和wstring
。例如,以下代码将char*
字符串转换为wstring
:
#include <windows.h>
std::string str = "Hello, world!";
int size = MultiByteToWideChar(CP_UTF8, 0, str.c_str(), -1, nullptr, 0);
std::wstring wstr(size, 0);
MultiByteToWideChar(CP_UTF8, 0, str.c_str(), -1, &wstr[0], size);
对于wchar_t*
字符串,可以使用以下代码将其转换为wstring
:
const wchar_t* wstr = L"Hello, world!";
std::wstring wstrObj(wstr);
上面的方法演示了将不同类型的字符串转换为wstring
的方法。你可以根据自己的需求选择最好的方法。