说明
char[]、char* 是C语言的字符串string 是 C++ 的字符串
char[]、char* 转 string
C++ 兼容 C语言,所以可直接转换
例子
char str[128]="abc";
std::string str2=str;
string 转 char *、char []
有2种方式:
- c_str()
- data()
c_str() 【推荐】
返回一个指向正规C字符串的指针, 内容与本string串相同,以 \0 结束,与c语言兼容
注意:一定要使用 strcpy() 函数 等来操作方法 c_str() 返回的指针
反例
不要这样:
const char* c;
string s="1234";
c = s.c_str();
cout<<c<<endl; //输出:1234
s="abcd";
cout<<c<<endl; //输出:abcd
正例
应该这样用:
char c[20];
string s="1234";
strcpy(c,s.c_str());
这样才不会出错,c_str()返回的是一个临时指针,不能对其进行操作
data()
返回字符串内容,但不以 \0 结束