📜  字符串到wstring的转换c++(1)

📅  最后修改于: 2023-12-03 15:09:21.573000             🧑  作者: Mango

C++中字符串到wstring的转换

在C++中字符串有多种类型,包括char*std::stringwchar_t*等。如果需要将这些字符串类型转换为wstring,可以使用以下方法。

使用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

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 API

如果你在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的方法。你可以根据自己的需求选择最好的方法。