string类型和char类型相互转换 |
您所在的位置:网站首页 › java中string转换成char › string类型和char类型相互转换 |
概念: string:string可以被看成是以字符为元素的一种容器。具有一些成员函数比如begin()、end(),迭代器可以根据他们进行定位,length() 函数获取长度。与char类型不同,string 不一定使用NULL('\0')结束,不能将string直接赋值给char*. char* : char* 是一个指针,可以指向一个字符串数组,至于这个数组可以在栈上分配,也可以在堆上分配,堆上需要手动释放。 区别: string 管理内存方式有系统完成,一般不会出现内存问题 char* 的内存管理是由用户自己处理,很容易出现内存不足问题,使用指针很容易出为题。 使用char*处理字符串不如string方便,处理过程中使用指针很容易出现内存问题。 string转const char*: 有两种转换方式, 1.使用string成员函数c_str();2. 使用string成员函数 data(),二者区别是data()返回没有结束符的字符数组。 并且,二者使用c_str()和data() 得到的指针指向地址和原来string的是同一个地址,所以只要string改变,c_str()和data()的返回值也会改变,使用strcpy_s(dst,length,src) 转换后 不随着原来string改变而改变; 相互转化: 1. string转换成char类型,使用 c_str()和data() 两种转换方式都只能转换成 const char*如果去掉 const 报错; #include //#include #include //#include using namespace std; int main() { string s = "123123"; const char *p1 = s.c_str(); cout |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |