C++中c_str()
阿新 • • 發佈:2020-10-10
1.要用strcpy
https://zhidao.baidu.com/question/104592558.html
char c[20]; string s="1234"; strcpy(c,s.c_str()); //這樣才不會出錯,c_str()返回的是一個臨時指標,不能對其進行操作。
下面是個反面例子:
constchar*c;//定義了一個常量指標 std::strings="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的指標。
上面已經給出了例子。