char*、char[]、string的相互转换是让人挺头晕的,也经常会用到,这篇文章盘一下。
1.char*
//(1)string --> char*
char *s_p1 = const_cast<char*>(s_test.c_str());
char *s_p2 = "123";//编译器可能会警告
//(2)char[] --> char*
char *a_p1 = a_test;
(1)因为string用c_str()转出来的是const char*,所以用类型转换去掉const然后再给char*
(2)char*可以直接指向char数组
2.char[]
//(1)string --> char[]
char s_a1[] = "123";
char s_a2[1024];
strcpy(s_a2, s_test.c_str());
//(2)char* --> char[]
char p_a1[1024];
strcpy(p_a1,p_test);
往char[]转,直接都用strcpy就行
3.string
//(1)char* --> string
string p_s1 = p_test;
string p_s2(p_test);
//(2)char[] --> string
string a_s1 = a_test;
string a_s2(a_test);
往string转,直接赋值或者用string的构造函数就行