string类型和char类型相互转换

您所在的位置:网站首页 java中string转换成char string类型和char类型相互转换

string类型和char类型相互转换

2023-10-27 08:33| 来源: 网络整理| 查看: 265

概念:

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