C++中c_str()

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  
"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的指针。

上面已经给出了例子。

posted @ 2020-10-10 14:00  lypbendlf  阅读(150)  评论(0)    收藏  举报