C++实现字符串类型(String16/String8/const char/char)转换
2016-05-08 17:15
5347 查看
C++实现字符串类型(String16/String8/const char/char)转换
最近在C++开发的时候遇到这么个问题,需要对函数参数中传来的String16参数进行大小写统一的转换,并且转换后的数据类型还是String16.下面就介绍一下各类数据类型的转换。
首先是String16到String8的转换:
如果需要又转换成String16的类型,需要:
这个时候就可以对字符串进行大小写的统一转换了,详细介绍可见本人下篇博文。
最近在C++开发的时候遇到这么个问题,需要对函数参数中传来的String16参数进行大小写统一的转换,并且转换后的数据类型还是String16.下面就介绍一下各类数据类型的转换。
首先是String16到String8的转换:
String16 name16 = String16("HellOThEWrolD"); String8 name8 = String8(name16);大家都知道,String16.string()其实就是const char16_t类型,String8.string()是const char*类型,所以转换之前需要将String16转换成const char*类型:
const char *C_name8 = name8.string();但是对const char*类型无法修改,所以这个时候会涉及到const char*到char*的转换。这个时候需要用到strcpy函数去实现。strcpy函数原型:
char* strcpy(char* __restrict dest, const char* __restrict src) { return __builtin___strcpy_chk(dest, src, __bos(dest)); }const char*到char*的转换:
char *buf = new char[strlen(C_name8)+1]; strcpy(buf, C_name8);此时的*buf的内容就是:“HellOThEWrolD”。
如果需要又转换成String16的类型,需要:
name16 = String16(buf);实现转换。在这需要注意的是程序执行完以后,需要对new 的buf内存进行释放:
delete []buf;
这个时候就可以对字符串进行大小写的统一转换了,详细介绍可见本人下篇博文。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++高级程序员成长之路
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C与C++之间相互调用实例方法讲解
- 解析C++中派生的概念以及派生类成员的访问属性