假设有一个string字符串,定义为string s = "123",则以下两种方法均可将其转换为char*
- s.c_str()
- s.data()
区别在于data除了返回字符串内容外,不附加结束符’\0’,而c_str()返回一个以‘\0’结尾的字符数组。
注意!!一定要使用strcpy()函数将c_str()返回的指针赋值给char*变量,不要采用直接复制的方式,即不要采用以下代码进行赋值:
string s = "123";
char* c = (char*)s.c_str();
cout << c << endl;
而是要采用:
string s = "123";
char c[100];
strcpy(c, s.c_str());
cout << c << endl;