#include <string> #include <locale.h> // 需包含locale、string頭文件、使用setlocale函數。 std::wstring StringToWstring(const std::string str) {// string轉wstring unsigned len = str.size() * 2;// 預留字節數 setlocale(LC_CTYPE, ""); //必須調用此函數 wchar_t *p = new wchar_t[len];// 申請一段內存存放轉換后的字符串 mbstowcs(p,str.c_str(),len);// 轉換 std::wstring str1(p); delete[] p;// 釋放申請的內存 return str1; } std::string WstringToString(const std::wstring str) {// wstring轉string unsigned len = str.size() * 4; setlocale(LC_CTYPE, ""); char *p = new char[len]; wcstombs(p,str.c_str(),len); std::string str1(p); delete[] p; return str1; } int main() { std::string str = "我是SunboyL。"; std::wstring str1 = StringToWstring(str);// string轉換為wstring str1 = L"我是不是SunboyL。"; str = WstringToString(str1);// wstring轉換為string return 0; }
以后需要用到兩種類型轉換時,可直接copy這兩個函數使用了。
