1.char*、char[]可以直接转为string
直接赋值
2.string转为char*
c_str()会返回一个指向c字符串类型的指针,所以
const char *ch=str.c_str();
也可以用str.data();
C++只能用const char*
由于是const 类型,所以可以用const_cast去掉底层const
char const*ar[]={"ls","-l","-h",NULL};
char **aar=const_cast<char **>(ar);
std::cout<<aar[1];
execvp("ls",aar);
3.string转为char[]
(1)可以用copy成员
char buf[4096];
int len=str.copy(buf,str.size(),0);表示从0开始复制赋值str.size()个,由于STL容器没有'\0',
所以buf[len]='\0'; '\0'结束标志符不占位数
(2)还可以用strcpy(buf,str.c_str()),当然这里只能转换成c格式的字符串才能复制