#include<string>
using namespace std;
//将string转换成wstring
wstring string2wstring(string str)
{
wstring result;
//获取缓冲区大小,并申请空间,缓冲区大小按字符计算
int len = MultiByteToWideChar(CP_ACP, 0, str.c_str(), str.size(), NULL, 0);
TCHAR* buffer = new TCHAR[len + 1];
//多字节编码转换成宽字节编码
MultiByteToWideChar(CP_ACP, 0, str.c_str(), str.size(), buffer, len);
buffer[len] = '\0'; //添加字符串结尾
//删除缓冲区并返回值
result.append(buffer);
delete[] buffer;
return result;
}
//将wstring转换成string
string wstring2string(wstring wstr)
{
string result;
//获取缓冲区大小,并申请空间,缓冲区大小事按字节计算的
int len = WideCharToMultiByte(CP_ACP, 0, wstr.c_str(), wstr.size(), NULL, 0, NULL, NULL);
char* buffer = new char[len + 1];
//宽字节编码转换成多字节编码
WideCharToMultiByte(CP_ACP, 0, wstr.c_str(), wstr.size(), buffer, len, NULL, NULL);
buffer[len] = '\0';
//删除缓冲区并返回值
result.append(buffer);
delete[] buffer;
return result;
}
分享到:
相关推荐
代码如下: #ifndef USE_H_ #define USE_H_ #include #include #include <string> using namespace std; class CUser { public: CUser();... char* WcharToChar(const wchar_t* wp); char* StringToChar
其中char和string之间、wchar_t和wstring之间的转换较为简单,代码在vs2010下测试通过。 代码如下:#include <iostream>#include <string>#include <tchar>#include using namespace std; //Converting a WChar ...
const wchar_t* from,const wchar_t * to, bool bFailIfExists=true); bool vtCopyTree(const char* from,const char * to); bool vtCopyTree(const wchar_t* from,const wchar_t * to); bool vtFolderExists...
static void Gb2312ToUnicode(wchar_t* pstrOut, u32 dwOutLen, const char* pstrIn, u32 dwInLen); static CString string_to_cstring(string text); static int string_to_int(string str); static string cstring...
vtString WStringToUTF8(const wchar_t* wstring); vtString2 UTF8ToWString(const char *string_utf8); vtString WStringToMBCS(const wchar_t* wstring); vtString2 MBCSToWString(const char *string_mbcs); ...
wstring string2Wstring(string sToMatch) { #ifdef _A_WIN int iWLen = MultiByteToWideChar( CP_ACP, 0, sToMatch.c_str(), sToMatch.size(), 0, 0 ); // 计算转换后宽字符串的长度。(不包含字符串结束符) ...
针对char和wchar_t(我特讨厌这后面的_t这根尾巴)两种字符类型的基类的和默认traits 的typedef.写函数参数类型的时候可以少写几个字, ^=^ 4. template <;size_t MaxSize, typename Traits=std::char_...
int stoi (const wstring& str, size_t* idx = 0, int base = 10); Convert string to integer Parses str interpreting its content as an integral number of the specified base, which is returned as an int ...
String与WString的字符转换代码,包含4种字符相互转换。
2.1.4 以char和wchar_t特化char_traits 56 附录3:Boost.Format中文文档 57 2.1 大纲 57 2.2 它是如何工作的 57 2.3语法 58 2.3.1 boost::format( format-string ) % arg1 % arg2 % ... % argN 58 2.3.2 printf 格式...
目录 1 正文 4 一、 C++的string的使用 4 1.1 C++ string简介 4 ...2.1.4 以char和wchar_t特化char_traits 24 附录3 TCHAR.h 映射表 24 日志: 24 1.0 版 24 1.1 版 24 1.2 版 24 2.0 版 24 2.1 版 24
C++开发中经常遇到的中英文字符串表示(string,wstring)类型之间的转换。
各种字符串类型的转换方法,留着备份以后使用
wstring转成string 关键 WideCharToMultiByte, 实现一个unicode字符串到一个多字节字符串。
支持int转string,double转string,string转wstring,const char*转为char*,wstring转string,utf8转gbk,gbk转utf8等
int A2U(const char* szA,wchar_t* szU,size_t cnt);// std::wstring A2U(const char* szA);// 并#include <string> 然后在GdiAppView.cpp里加入这两个函数的实现 10.在GdiAppView.cpp中的OnDraw函数中添加显示代码...
本工程总结了:string2charx、string2charx、transchar、WChar2Ansi、wstring2string、wstring Utf_8ToUnicode、 GBKToUTF8几种类型的转化。
std::wstring ConverANSI2Unicode(const std::string str); std::wstring ConverUTF82Unicode(const std::string str); std::string ConverUnicode2UTF8(const std::wstring str); std::string ConverUnicode2ANSI...