C string類的c str 函式

2021-06-08 12:58:57 字數 1500 閱讀 6938

標準庫的string類提供了3個成員函式來從乙個string得到c型別的字元陣列:c_str()、data()、copy(p,n)。

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

注:①這個陣列的資料是臨時的,當有乙個改變這些資料的成員函式被呼叫後,其中的資料就會失效。因此要麼現用先轉換,要麼把它的資料複製到使用者自己可以管理的記憶體中。注意。看下例:

constchar* c;

string s="1234";

c = s.c_str();

cout/輸出:1234

s="abcd";

cout/輸出:abcd

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

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

cout/輸出:1234

s="abcd";

cout/輸出:1234

注意:不能再像上面一樣①所示了,const還怎麼向裡面寫入值啊;也不能②所示,使用了未初始化的區域性變數「c」,執行會出錯的 。

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

C string類的常用函式

1 string 類的物件可以直接賦值 string operator const string s 2 string operator const string s 3 還可以直接用運算子 直接比較字串。4 string.swap string s2 交換當前字串與s2的值。5 string.fi...

C string類的查詢函式

string類的查詢函式 int find char c,int pos 0 const 從pos開始查詢字元c在當前字串的位置 int find const char s,int pos 0 const 從pos開始查詢字串s在當前串中的位置 int find const char s,int p...

C string類的建構函式

在c 中string類的建構函式有六種方式 分別是 1.string const char s 說明 將string物件初始化為s指向nbts。nbts為null byte temnated string的縮寫,表示以空字元結束的字串 傳統的c字串。2.string size type n,char...