1.要用strcpy
https://zhidao.baidu.com/question/104592558.html
char c[20]; string s="1234"; strcpy(c,s.c_str()); //这样才不会出错,c_str()返回的是一个临时指针,不能对其进行操作。
下面是个反面例子:
const char* c; //定义了一个常量指针 std::string s = "1234"; c = s.c_str(); #指向了一个临时指针 std::cout << c << std::endl; //输出:1234 s = "abcd"; //之后s变化了c的值也会发生变化 std::cout << c << std::endl; //输出:abcd // 上面如果继续用c指针的话,导致的错误将是不可想象的,就如:1234变为abcd。
2.strcpy
函数原型 char *strcpy(char *dest,const char *src):
从src地址开始且含有null结束符的字符串复制到以dest地址开始的字符串中,并返回指向dest的指针。
上面已经给出了例子。