{wchar_t*, wchar_t, wchat_t数组},{char,char*,char数组},{std::string,std::wstring},CString之间的相互转换
来源:互联网 发布:linux nc命令 编辑:程序博客网 时间:2024/05/18 18:14
原帖不详,我从这找到的:http://www.cnblogs.com/sunnyjones/archive/2009/02/25/1397757.html
// char*------>wchar*
wchar_t* AnsiToUnicode( const char* szStr ){int nLen = MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, szStr, -1, NULL, 0 );if (nLen == 0){return NULL;}wchar_t* pResult = new wchar_t[nLen];MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, szStr, -1, pResult, nLen );return pResult;}
//------------------ 将 宽字节wchar_t* 转换 单字节char*--------------//inline char* UnicodeToAnsi( const wchar_t* szStr ){int nLen = WideCharToMultiByte( CP_ACP, 0, szStr, -1, NULL, 0, NULL, NULL );if (nLen == 0){return NULL;}char* pResult = new char[nLen];WideCharToMultiByte( CP_ACP, 0, szStr, -1, pResult, nLen, NULL, NULL );return pResult;}
//-----------------------将单字符 string 转换为宽字符 wstring------------------------------inline void Ascii2WideString( const std::string& szStr, std::wstring& wszStr ){int nLength = MultiByteToWideChar( CP_ACP, 0, szStr.c_str(), -1, NULL, NULL );wszStr.resize(nLength);LPWSTR lpwszStr = new wchar_t[nLength];MultiByteToWideChar( CP_ACP, 0, szStr.c_str(), -1, lpwszStr, nLength );wszStr = lpwszStr;delete [] lpwszStr;}
//----------------------------------------------------------------------------------int _tmain(int argc, _TCHAR* argv[]){char* pChar = "我喜欢char";wchar_t* pWideChar = L"我讨厌wchar_t";wchar_t tagWideCharList[100] ;char ch = 'A';char tagChar[100] = {NULL};CString cStr;std::string str;// 注:设置语言环境以便输出WideCharsetlocale(LC_ALL,"chs");// 注: char* 转换 wchar_t*// 注: wchar_t 未重载 << ,所以不可使用 cout << 输出pWideChar = AnsiToUnicode( pChar );// 注:printf("%ls") 和 wprintf(L"%s") 一致printf( "%ls\n", pWideChar );// 注:wchar_t* 转换 wchar_t[]wcscpy ( tagWideCharList, pWideChar );wprintf( L"%s\n", tagWideCharList );// 注:wchar_t[] 转换 wchar_t*pWideChar = tagWideCharList;wprintf( L"%s\n", pWideChar );// 注:char 转换 stringstr.insert( str.begin(), ch );cout << str << endl;// 注:wchar_t* 转换 stringpWideChar = new wchar_t[str.length()];swprintf( pWideChar, L"%s", str.c_str());wprintf( L"%s\n", pWideChar );// 注:string 转换 char*pChar = const_cast<char*>(str.c_str());cout << pChar << endl;// 注:char* 转换 stringstr = std::string(pChar);// 注: cout 的 << 重载了string, 若printf 的话必须 printf("%s", str.c_str()); // 而不可 print( "%s", str ); 因为 str 是个 string 类cout << str << endl;// 注:string 转换 char[]str = "无聊啊无聊";strcpy( tagChar, str.c_str() );printf( "%s\n", tagChar );// 注:string 转换 CString;cStr = str.c_str();// 注:CString 转换 string str = string(cStr.GetBuffer(cStr.GetLength()));// 注:char* 转换 CStringcStr = pChar;// 注:CString 转换 char*pChar = cStr.GetBuffer( cStr.GetLength() );// 注:CString 转换 char[]strncpy( tagChar, (LPCTSTR)CString, sizeof(tagChar));// 注:CString 转换 wchar_t*pWideChar = cStr.AllocSysString();printf( "%ls\n", pWideChar );}
- {wchar_t*, wchar_t, wchat_t数组},{char,char*,char数组},{std::string,std::wstring},CString之间的相互转换
- wchar_t*,wchar_t,wchat_t数组,char,char*,char数组,std::string,std::wstring,CString....转换
- wchar_t*,wchar_t,wchat_t数组,char,char*,char数组,std::string,std::wstring,CString....转换
- wchar_t*,wchar_t,wchat_t数组,char,char*,char数组,std::string,std::wstring,CString 以及system("command")
- std::string,std::wstring,CString,char,char*,char数组,wchar_t*,wchar_t,wchat_t数组
- wchar_t*,wchar_t,wchat_t数组,char,char*,char数组,std::string,std::wstring,CString
- wchar_t*,wchar_t,wchat_t数组,char,char*,char数组,std::string,std::wstring,CString....
- wchar_t*,wchar_t,wchat_t数组,char,char*,char数组,std::string,std::wstring,CString....
- wchar_t*,wchar_t,wchat_t数组,char,char*,char数组,std::string,std::wstring,CString转自由骑士大哥的)
- 【转】wchar_t*,wchar_t,wchat_t数组,char,char*,char数组,std::string,std::wstring,CString....相互之间的转化
- wchar_t*,wchar_t,wchat_t数组,char,char*,char数组,std::string,std::wstring,CStrin
- wchar_t,char,std::string,std::wstring,CString转换
- wchar_t,char,std::string,std::wstring,CString转换
- wchar_t char std::string std::wstring CString 转换
- [转]wchar_t char std::string std::wstring CString 转换
- [转]wchar_t char std::string std::wstring CString 转换
- C++ string 、char 、char *、wstring、wchar_t * 、wchar_t 之间的转换
- c++中char*\wchar_t*\string\wstring之间的相互转换
- TimeQuest API(1): 时钟约束
- php的一些学习材料
- 【GIS】目前世界上最主要的导航电子地图数据标准/格式
- java日期时间的使用
- 给自己记住的:关于数据库中sysobject表结构
- {wchar_t*, wchar_t, wchat_t数组},{char,char*,char数组},{std::string,std::wstring},CString之间的相互转换
- python自动安装工具easy_install的使用
- Oracle 查看索引语句
- Android中java.lang.NoClassDefFoundError
- ORACLE PL/SQL编程之把过程与函数说透
- js、html中的单引号、双引号及其转义使用(转)
- Joomla! 1.6/1.7/2.5 Privilege Escalation Vulnerability
- 今天找到了一个很nice的js网站 ,不!是两个 一个博客,一个网站
- 分页存储过程