1. string to char*
方式1 通过const_cast<char*>()
std::string str = "string"; char* chr = const_cast<char*>(str.c_str())
方式2
string str = "some string" ; char *cstr = &str[0];
方式3
std::string str = "string"; const char *cstr = str.c_str();
使用str.c_str()返回的是const cahr* 类型,如果想转换为char* 类型需经过const_cast<char*>()
2. char* to string
方式1:直接赋值
char c[] = "this is a char array"; const char* t = "const char"; string s = t; string ss = c;
方式2:
同理const char*转string:
const char* cc = "this is a const exp"; string s(cc, cc + strlen(cc));
3. char* 和const char*
const char* src = "this is a const exp"; char* ch = const_cast<char*>(src); const char* dst = static_cast<const char*>(ch); cout << ch << endl; cout << dst << endl;
4.string转为char[]
//char[]可以直接赋值给stiring //string不能直接转换为char[],可以先转换为char*,再通过strcpy来转换 char buf[BUFSIZE]; char* p=const_cast<char*>(str.c_str()); strcpy(buf,p);