string 是c++标准库里面其中一个,封装了对字符串的操作 把string转换为char* 有3中方法:
1.data如:
string str="abc";
char*p=str.data();
2.c_str 如:
string str="gdfd";
char*p=str.c_str();
3.copy 比如string str="hello";
char p[40]; str.copy(p,5,0);//这里5,代表复制几个字符,0代表复制的位置
*(p+5)='\0';//要手动加上结束符
cout<<p;
4.string str1="Hello";
char*str2=const_cast<char*>(str1.c_str());
cout<<str2;
return0;
其中有以下几点需注意:a.string的data()函数返回的字符串指针不会以'\0'结束,千万不可忽视。b.对于以上的1和2
这个要看string是否初始化了确定的字符串。比如:
string str ="asdf";
char* ch = str.c_str();
是没问题的,但是
string str1= str2;
char* ch = str.c_str();
编译器会报错的,此时返回的是const char *。
这样的话必须使用char* ch = const_cast<char*>(str.c_str());