c 中c str 的用法詳解

2021-06-25 22:45:30 字數 1195 閱讀 2319

//標準庫的string類提供了三個成員函式來從乙個string得到c型別的字元陣列

//主要介紹c_str

//c_str():生成乙個const char*指標,指向以空字元終止的陣列。

//這個陣列應該是string類內部的陣列

#include //需要包含cstring的字串

#include using namespace std;

int main()

{ //string-->char*

//c_str()函式返回乙個指向正規c字串的指標, 內容與本string串相同

//這個陣列的資料是臨時的,當有乙個改變這些資料的成員函式被呼叫後,其中的資料就會失效。

//因此要麼現用先轉換,要麼把它的資料複製到使用者自己可以管理的記憶體中

const char *c;

string s = "1234";

c = s.c_str();

cout結果是:

上面如果繼續用c指標的話,導致的錯誤將是不可想象的。就如:1234變為abcd

其實上面的c = s.c_str(); 不是乙個好習慣。既然c指標指向的內容容易失效,我們就應該按照上面的方法,那怎麼把資料複製出來呢?這就要用到strcpy等函式(推薦)。

//更好的處理為:

//標準庫的string類提供了三個成員函式來從乙個string得到c型別的字元陣列

//主要介紹c_str

//c_str():生成乙個const char*指標,指向以空字元終止的陣列。

//這個陣列應該是string類內部的陣列

#include //需要包含cstring的字串

#include using namespace std;

int main()

{ //更好的方法是將string陣列中的內容複製出來 所以會用到strcpy()這個函式

char *c = new char[20];

string s = "1234";

// c_str()返回乙個客戶程式可讀不可改的指向字元陣列的指標,不需要手動釋放或刪除這個指標。

strcpy(c,s.c_str());

cout<

C 中c str 的用法詳解

c中沒有string,所以函式c str 就是將c 的string轉化為c的字串陣列,c str 生成乙個const char 指標,指向字串的首位址。下文通過3段簡單的 比較分析,具體說明c str 的使用方法和注意事項。include include using namespace std in...

C 中的c str 函式用法

1.c str 函式是string類中的乙個函式,它返回當前字串的首字元位址。c str函式的返回值是const char 的,不能直接賦值給char 所以就需要我們進行相應的操作轉化,下面就是這一轉化過程。標準標頭檔案包含操作c 串的函式庫。這些庫函式表達了我們希望使用的幾乎每種字串操作。當呼叫庫...

C 中的c str 函式用法

語法 1 const char c str c str 函式返回乙個指向正規c字串的指標常量,內容與本string串相同。這是為了與c語言相容,在c語言中沒有string型別,故必須通過string類物件的成員函式c str 把string 物件轉換成c中的字串樣式。注意 一定要使用strcpy 函...