Unicode下wstring(wchar_t*)和string(char*)互相转换

转载 2011年01月20日 15:46:00

1.#include

2.using namespace std;

3.

4.//将string转换成wstring

5.wstring string2wstring(string str)

6.{

7. wstring result;

8. //获取缓冲区大小,并申请空间,缓冲区大小按字符计算

9. int len = MultiByteToWideChar(CP_ACP, 0, str.c_str(), str.size(), NULL, 0);

10. TCHAR* buffer = new TCHAR[len + 1];

11. //多字节编码转换成宽字节编码

12. MultiByteToWideChar(CP_ACP, 0, str.c_str(), str.size(), buffer, len);

13. buffer[len] = '/0'; //添加字符串结尾

14. //删除缓冲区并返回值

15. result.append(buffer);

16. delete[] buffer;

17. return result;

18.}

19.

20.//将wstring转换成string

21.string wstring2string(wstring wstr)

22.{ 23. string result;

 24. //获取缓冲区大小,并申请空间,缓冲区大小事按字节计算的

25. int len = WideCharToMultiByte(CP_ACP, 0, wstr.c_str(), wstr.size(), NULL, 0, NULL, NULL);

26. char* buffer = new char[len + 1];

27. //宽字节编码转换成多字节编码

28. WideCharToMultiByte(CP_ACP, 0, wstr.c_str(), wstr.size(), buffer, len, NULL, NULL);

29. buffer[len] = '/0';

30. //删除缓冲区并返回值

31. result.append(buffer);

32. delete[] buffer;

33. return result;

34.}

相关文章推荐

c++中char*\wchar_t*\string\wstring之间的相互转换

string U2A(const wstring& str)//Unicode字符转Ascii字符{ string strDes; if ( str.empty() ) goto __end;...
  • mfcing
  • mfcing
  • 2012年05月02日 23:16
  • 15072

VC++中通过MultiByteToWideChar将string|char*转换为wstring|wchar_t*

原文地址:http://www.cnblogs.com/qq78292959/archive/2010/09/15/2077015.html #include #include using na...
  • ljh0302
  • ljh0302
  • 2015年12月31日 10:49
  • 297

VC++中通过MultiByteToWideChar将string|char*转换为wstring|wchar_t*

将string|char*转换为wstring|wchar_t*的例子: 1、string转换为wstring: string str=_T("翔翔糖糖"); int size=MultiByt...
  • wskelan
  • wskelan
  • 2012年03月26日 22:41
  • 1322

C++ wstring string char* wchar_t相互转换

1. char*->string (1)直接转换 const char* nodename; string temp = nodename;string temp2(nodename); ...

string转换为wstring:char*转换为wchar_t*:

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://flyxxtt.blogbus.com/logs/43667936.html 函数原型: int MultiB...

c++中的char*与wchar_t*与string以及wstring之间的相互转换

本文转自此网址:http://www.jb51.net/article/37627.htm   #ifndef USE_H_ #define USE_H_ #include...

wstring转换为string:wchar_t*转换为char*:

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://flyxxtt.blogbus.com/logs/43623461.html 函数原型: int WideCharT...

Relationship: char, wchar_t, TCHAR, _T(), wstring, string

CString 是一种很特殊的 C++ 对象,它里面包含了三个值:一个指向某个数据缓冲区的指针、一个是该缓冲中有效的字符记数(它是不可存取的,是位于 CString 地址之下的一个隐藏区域)以及一个缓...

C++ string 、char 、char *、wstring、wchar_t * 、wchar_t 之间的转换

原博文链接:http://www.aobosir.com/blog/2016/12/16/cpp-convert-string-wstring-char-wchar_t-pointer/char 与 ...

CString转char * ,string |wchar_t*和char*之间互相转换

http://blog.csdn.net/huihui0121/article/details/5804446 CString头文件#include string头文件#includ...
  • ruihaha
  • ruihaha
  • 2015年02月11日 14:38
  • 326
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Unicode下wstring(wchar_t*)和string(char*)互相转换
举报原因:
原因补充:

(最多只允许输入30个字)