前言
C++中string、char *、char[]的转换算是很常见的问题,每次遇到都马上去查实在费劲,所以干脆记录下来
string转char*
- data()
string str = "hello";
const char* p = str.data();//加const 或者用char * p=(char*)str.data();的形式
- c_str()
string str=“world”;
const char *p = str.c_str();//同上,要加const或者等号右边用char*
- copy()
string str="hmmm";
char p[50];
str.copy(p, 5, 0);//这里5代表复制几个字符,0代表复制的位置,
*(p+5)=‘\0’;//注意手动加结束符!!!
char*转string
直接赋值
string s;
char *p = "hello";//直接赋值
s = p;
string转char[]
string pp = "dagah";
char p[8];
int i;
for( i=0;i<pp.length();i++)
p[i] = pp[i];
p[i] = '\0';
printf("%s\n",p);
cout<<p;
char[]转string
直接赋值
结束语
本人大三学生一枚,学识尚浅,不喜勿喷,希望今日能抛砖引玉,请各位大佬一定不吝赐教!!!