1.char*转string:可以直接赋值。
2.char[]转string:可以直接赋值。
3.char*转char[]:不能直接赋值,可以循环char*字符串逐个字符赋值,也可以使用strcpy_s等函数。
4.string转char[]:不能直接赋值,可以循环char*字符串逐个字符赋值,也可以使用strcpy_s等函数。
5.string转char*:调用string对象的c_str函数或data函数或copy函数。
6.char[]转char*:直接赋值即可。
主要列举下char*复制到char*
错误方法1:
char *a = char *b
错误原因:类型是指针,直接赋值会使两个指针指向同一个地址,改动一个另一个也会变。
错误方法2:
string a=char *b
char *c=a.data() //或者char *c=a.c_str()
错误原因:string.data()返回值是const char*类型,不是char*类型。
正确方法:
string a=char *b
char *c=(char*)a.data() //或者char *c=a.c_str()
其他方法:
strcpy:我用一直内存写入错误,如果你能用就直接用就行了。
const_cast:据说可以,没用过。