转char*
主要有三种方法可以将str转换为char*类型,分别是:data(); c_str(); copy();
1.data()
data()仅返回字符串内容,而不含有结束符‘\0‘
std::string s = "active"; //const char* p = s.data(); char* p = (char*)s.data();
2.c_str()
c_str()函数返回一个指向C字符串的指针,该指针指向内存内容和string 相同。因为c语言不支持string类型,故为了在c++兼容C字符串,提供了c_str()函数来实现转换。注意一定要使用strcpy()函数来操作c_str();c_str()返回的是一个临时指针,不能对其进行操作。
std::string s = "active"; const char* p = s.c_str();
3.copy()方法
std::string s = "active"; char p[10]; s.copy(p,2,2); *(p + 2) = ‘\0‘;
string转char[]
std::string s = "native"; char p[8]; for (int i = 0; i < s.length(); i++) p[i] = s[i]; p[s.length()] = ‘\0‘;