首页 > 代码库 > stl中char 与wchar 的转换
stl中char 与wchar 的转换
学习记录:
stl中 字符串 str自然对应的是string
宽字符串wchar 对应的是wstring
宽字符串占用两个字节
两者的转换有三种办法
1 windows 的api转换函数WideCharToMultiByte()与MultiByteToWideChar(). 不适合跨平台使用.
2 ATL中CA2W类与CW2A类。或者使用A2W宏与W2A宏。稍显累赘和麻烦
3 使用CRT库的函数 函数和使用方法见下列代码
#include <string>#include <iostream>#include <locale.h>using namespace std;string ws2s(const wstring &ws){ const wchar_t* wpchar = ws.c_str(); size_t returnVal = 0; size_t wSize = 2*ws.size() + 1; char* pchar = new char[wSize]; memset(pchar,0,wSize); wcstombs_s(&returnVal,pchar,wSize,wpchar,wSize); string result = pchar; delete[] pchar; return result;}int _tmain(int argc, _TCHAR* argv[]){ setlocale(LC_ALL,"chs"); wstring ws = L"中国 你好,sf*&%*&^%^&sd,这是一个测试"; string ss = ws2s(ws); wcout << ws << endl; cout << ss << endl; return 0;}
stl中char 与wchar 的转换
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。