C++中char*与wchar_t*之间的转换
把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*类型。
把(const)char*转换为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*之间的转换相关推荐
- C#中char[]与string之间的转换
C#中char[]与string之间的转换 原文:C#中char[]与string之间的转换 string 转换成 Char[] string ss = "abcdefg"; ch ...
- Java中 char和int之间的转换
1.int 转换成char: int n = 1; char ch = (char)(n + '0'); 这样打印出来ch的值为1; ...
- C/C++中char *与wchar_t*的几种转换方法
多字节(char *)和宽字符(wchar_t *)之间的转换有几种方式,下面按照从通用到特殊的顺序逐一介绍. 1.C库函数 1.1 关键函数 (1) setlocale() 功能:配置地域化信息 头 ...
- BSTR、char* 和 CString 之间的转换 (转)
BSTR.char* 和 CString 之间的转换 (1) char*转换成CString 若将char*转换成CString,除了直接赋值外,还可使用CString::Format进行.例如: c ...
- C++中数字与字符串之间的转换 scanf string总结(复习必读)
1 string的scanf读入操作 C++里面控制台输入直接使用cin操作就可以了:或者getline(istringstream,string); 字符和数字加减就是字符的ASCII码和数字直接加 ...
- java中各进制之间的转换(十进制转十六进制、十进制转二进制、二进制转十进制、二进制转十六进制)...
在java编辑中有没有遇到经常需要进行java中各进制之间的转换(十进制转十六进制.十进制转二进制.二进制转十进制.二进制转十六进制)的事情呢?下面我们就来分析一下各自是怎么转换的: [java] / ...
- java子类和父类实例_java中父类与子类之间的转换示例
java中父类与子类之间的转换示例有以下三点: 示例一 父类强制转子类 pre class="brush:php;toolbar:false">Father f = new ...
- Javascript中char和int的互相转换的代码(转载)
Javascript中char和int的互相转换的代码 // Converts an integer (unicode value) to a char function itoa(i) { ...
- pythonunicode和str_python2 中 unicode 和 str 之间的转换及与python3 str 的区别
在python2中字符串分为 unicode 和 str 类型 Str To Unicode 使用decode(), 解码 Unicode To Str 使用encode(), 编码 返回数据给前端时 ...
最新文章
- Android在线开发工具 App Inventor
- 操作api_币安多币种自动化策略API操作指南
- 1062 最简分数(PAT乙级 C++)
- LeetCode 1880. 检查某单词是否等于两单词之和
- (BFS)Dungeon Master(poj2251)
- Python 绘制探地雷达堆叠波形图
- python 列表list相关知识
- Python中的枚举(enumerate)
- wps python 自动化_请教下 Python 高手,如何用 Python 自动化操作 Excel?
- android audio 音量设置分析
- android 移除泛型中元素_Android 代码混淆 混淆方案
- java自带数据结构(set/list/stack/queue)
- latex 引用网页 网址 网站 格式
- 百度网盘,莫名其妙把文件删除了
- 中科大EPC课程查询自动选课
- 安卓计算机切换用户,电脑模拟器小米游戏怎么切换账号
- 朱晔的互联网架构实践心得S1E5:不断耕耘的基础中间件
- Python基础包含哪些内容?学习什么?
- 用友nc65 uap开发找产品功能源代码
- Visual Studio 中使用万能头文件 #include bits/stdc++.h
热门文章
- TClientDataSet[27]: 字段值的约束(或叫输入限制)
- 树莓派(TCP客户端 )和Wemos(TCP服务端连接红外模块)通讯实现对红外设备的控制
- 全国计算机等级考试题库二级C操作题100套(第75套)
- 由于开发者通过接口修改了菜单配置_开发者说:Seata 0.7.0 版本,你 get 'Metrics' 技能了吗?...
- 什么情况下会导致@Async异步方法会失效?
- String、StringBuuffer、StringBuilder三者的区别
- 前端:根据类型获取正则表达式字符串​
- 如何通俗地解释 C、C++、C#、Java、JavaScript、HTML、Python的用处
- 科学家公布“寿命计算器”,快算一下你能活多久?
- 摩托罗拉v8对讲机驱动软件_摩托罗拉数字机如何设置“个性”提示音