#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; }
std::wstring 与std::string 转换
最新推荐文章于 2025-05-16 13:50:28 发布
本文介绍如何在C++中实现标准字符串(string)与宽字符字符串(wstring)之间的相互转换。通过两个函数示例,详细展示了使用setlocale、mbstowcs及wcstombs等函数的具体步骤。
3836

被折叠的 条评论
为什么被折叠?



