📜  c++ string to wstring - C++ (1)

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

C++ string to wstring

在C++中,string和wstring都是非常常用的字符串类型。string是用来存储ASCII字符的,而wstring是用来存储Unicode字符的。在某些情况下,我们需要将string类型的字符串转换成wstring类型的字符串。下面是两种常用的方法。

1. 使用wstring_convert

C++11中引入了std::wstring_convert,可以方便地进行string和wstring之间的转换。具体用法如下:

#include <locale>
#include <codecvt>

std::string str = "hello";
std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
std::wstring wstr = converter.from_bytes(str);

上面的代码中,wecht_t是wchar.h中定义的宽字符类型,std::codecvt_utf8是一个用于将UTF-8编码的字符串转换为宽字符的转换方式。通过这种方式,我们可以方便地将string类型的字符串转换成wstring类型的字符串。

2. 使用wstringstream

另一种方法是使用wstringstream。具体用法如下:

#include <sstream>

std::string str = "hello";
std::wstringstream wss;
wss << str.c_str();
std::wstring wstr = wss.str();

上面的代码中,我们使用wstringstream将string类型的字符串转换成了wstring类型的字符串。需要注意的是,在将string类型的字符串插入到wstringstream中时,需要使用其c_str()方法。

以上就是将string类型的字符串转换成wstring类型的字符串的两种常用方法。在实际编程中,需要根据具体的场景选择不同的转换方式。