c++中char和string相互转换
⼀、string转char*。
主要有三种⽅法可以将str转换为char*类型,分别是:data(); c_str(); copy();
1.data()⽅法,如:
string str = “hello”
const char * p = str.data();//加const
或者⽤ char *p=(char *)str.data();的形式
同时有⼀点需要说明,这⾥在devc++中编译需要添加const,否则会报错invalid conversion from const char to char ,这⾥可以再前⾯加上const或者在等号后⾯给强制转化成char的类型。
2.c_str()⽅法,如:
string str=“world”;
const char *p = str.c_str();//同上,要加const或者等号右边⽤char
3.copy()⽅法,如:
tring str=“hmmm”;
char p[50];
py(p, 5, 0);//这⾥5代表复制⼏个字符,0代表复制的位置,
*(p+5)=‘\0’;//注意⼿动加结束符
⼆、char * 转string。
可以直接赋值。
string s;
char *p = “hello”;//直接赋值
c++中string的用法 s= p;
这⾥有⼀点要说明,当声明了string类型变量s后,⽤printf("%s",s);是会出错的,因为“%s”要求后⾯的对象的⾸地址。但是string 不是这样的⼀个类型。所以肯定出错。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论