char*转换为wchar_t*

用stdlib.h中的mbstowcs_s函数,可以通过下面的例子了解其用法:

char *CStr = "string to convert";

size_t len = strlen(CStr) + 1;

size_t converted = 0;

wchar_t *WStr;

WStr=(wchar_t*)malloc(len*sizeof(wchar_t));

mbstowcs_s(&converted, WStr, len, CStr, _TRUNCATE);

其结果是WStr中储存了CStr的wchar_t版本。

wchar_t*转换为char*

和上面的方法类似,用stdlib.h中的wcstombs_s函数,例子:

wchar_t *WStr = L"string to convert";

size_t len = wcslen(WStr) + 1;

size_t converted = 0;

char *CStr;

CStr=(char*)malloc(len*sizeof(char));

wcstombs_s(&converted, CStr, len, WStr, _TRUNCATE);

这时WStr中的内容将被转化为char版本储存在CStr中。

另外还可以通过流的方法来char*类型转换为wchar_t*类型,但这样的转换得到的结果将是const类型,而类似的方法不能将wchar_t*类型转换为char*类型。

把(constchar*转换为const wchar_t*

需要用到 sstream 头文件:

char *cstr="string to convert";

wstringstream wss;

wss<<cstr;

再调用wss.str().c_str(); 即可得到 const wchar_t* 类型的返回值。

虽然stringstream流不能将wchar_t*转换成char*,但可以用来进行数值类型和字符串之间的转换,例如:

double d=2734792.934f;

stringstream ss;

ss<<d;

调用ss.str()可得到string类型字符串 ”273479e+006”,又如:

string str("299792458");

stringstream ss;

long i=0;

ss<<str;

ss>>i;

此时i=299792458。

转载于:https://blog.51cto.com/rainseason/836485

C++中char*与wchar_t*之间的转换相关推荐

  1. C#中char[]与string之间的转换

    C#中char[]与string之间的转换 原文:C#中char[]与string之间的转换 string 转换成 Char[] string ss = "abcdefg"; ch ...

  2. Java中 char和int之间的转换

    1.int 转换成char: int  n = 1;                 char ch = (char)(n + '0'); 这样打印出来ch的值为1;                 ...

  3. C/C++中char *与wchar_t*的几种转换方法

    多字节(char *)和宽字符(wchar_t *)之间的转换有几种方式,下面按照从通用到特殊的顺序逐一介绍. 1.C库函数 1.1 关键函数 (1) setlocale() 功能:配置地域化信息 头 ...

  4. BSTR、char* 和 CString 之间的转换 (转)

    BSTR.char* 和 CString 之间的转换 (1) char*转换成CString 若将char*转换成CString,除了直接赋值外,还可使用CString::Format进行.例如: c ...

  5. C++中数字与字符串之间的转换 scanf string总结(复习必读)

    1 string的scanf读入操作 C++里面控制台输入直接使用cin操作就可以了:或者getline(istringstream,string); 字符和数字加减就是字符的ASCII码和数字直接加 ...

  6. java中各进制之间的转换(十进制转十六进制、十进制转二进制、二进制转十进制、二进制转十六进制)...

    在java编辑中有没有遇到经常需要进行java中各进制之间的转换(十进制转十六进制.十进制转二进制.二进制转十进制.二进制转十六进制)的事情呢?下面我们就来分析一下各自是怎么转换的: [java] / ...

  7. java子类和父类实例_java中父类与子类之间的转换示例

    java中父类与子类之间的转换示例有以下三点: 示例一 父类强制转子类 pre class="brush:php;toolbar:false">Father f = new ...

  8. Javascript中char和int的互相转换的代码(转载)

    Javascript中char和int的互相转换的代码 // Converts an integer (unicode value) to a char function itoa(i) {      ...

  9. pythonunicode和str_python2 中 unicode 和 str 之间的转换及与python3 str 的区别

    在python2中字符串分为 unicode 和 str 类型 Str To Unicode 使用decode(), 解码 Unicode To Str 使用encode(), 编码 返回数据给前端时 ...

最新文章

  1. Android在线开发工具 App Inventor
  2. 操作api_币安多币种自动化策略API操作指南
  3. 1062 最简分数(PAT乙级 C++)
  4. LeetCode 1880. 检查某单词是否等于两单词之和
  5. (BFS)Dungeon Master(poj2251)
  6. Python 绘制探地雷达堆叠波形图
  7. python 列表list相关知识
  8. Python中的枚举(enumerate)
  9. wps python 自动化_请教下 Python 高手,如何用 Python 自动化操作 Excel?
  10. android audio 音量设置分析
  11. android 移除泛型中元素_Android 代码混淆 混淆方案
  12. java自带数据结构(set/list/stack/queue)
  13. latex 引用网页 网址 网站 格式
  14. 百度网盘,莫名其妙把文件删除了
  15. 中科大EPC课程查询自动选课
  16. 安卓计算机切换用户,电脑模拟器小米游戏怎么切换账号
  17. 朱晔的互联网架构实践心得S1E5:不断耕耘的基础中间件
  18. Python基础包含哪些内容?学习什么?
  19. 用友nc65 uap开发找产品功能源代码
  20. Visual Studio 中使用万能头文件 #include bits/stdc++.h

热门文章

  1. TClientDataSet[27]: 字段值的约束(或叫输入限制)
  2. 树莓派(TCP客户端 )和Wemos(TCP服务端连接红外模块)通讯实现对红外设备的控制
  3. 全国计算机等级考试题库二级C操作题100套(第75套)
  4. 由于开发者通过接口修改了菜单配置_开发者说:Seata 0.7.0 版本,你 get 'Metrics' 技能了吗?...
  5. 什么情况下会导致@Async异步方法会失效?
  6. String、StringBuuffer、StringBuilder三者的区别
  7. 前端:根据类型获取正则表达式字符串​
  8. 如何通俗地解释 C、C++、C#、Java、JavaScript、HTML、Python的用处
  9. 科学家公布“寿命计算器”,快算一下你能活多久?
  10. 摩托罗拉v8对讲机驱动软件_摩托罗拉数字机如何设置“个性”提示音