C++实现字符串类型(String16/String8/const char/char)转换

来源:互联网 发布:java main函数 sleep 编辑:程序博客网 时间:2024/06/05 05:19
C++实现字符串类型(String16/String8/const char/char)转换




    最近在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;

这个时候就可以对字符串进行大小写的统一转换了,详细介绍可见本人下篇博文。








0 0
原创粉丝点击