日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          "); //-->

          博客專欄

          EEPW首頁 > 博客 > c++ string.c_str()小結(jié)

          c++ string.c_str()小結(jié)

          發(fā)布人:電子禪石 時間:2024-08-08 來源:工程師 發(fā)布文章

          c++

          const char *c_str();
          c_str()函數(shù)返回一個指向正規(guī)C字符串的指針常量, 內(nèi)容與本string串相同.(其實它指向的是string對象內(nèi)部真正的char緩沖區(qū)),所以返回const,以防止用戶的修改。
          這是為了與c語言兼容,在c語言中沒有string類型,故必須通過string類對象的成員函數(shù)c_str()把string 對象轉(zhuǎn)換成c中的字符串樣式。
          
          
          如:strcpy()等函數(shù).因為,string對象可能在使用后被析構(gòu)函數(shù)釋放掉,那么你所指向的內(nèi)容就具有不確定性.

          {

          string var = "Olympic";

          char *ptr = var.c_str();

          }//還不能被編譯,因為va.c_str()返回臨時指針,賦值給ptr之后,在}結(jié)束之后,var對象就得析構(gòu),最后要使用ptr,就是垃圾內(nèi)容

           

          一,C語言的字符串

          在C語言里,對字符串的處理一項都是一件比較痛苦的事情,因為通常在實現(xiàn)字符串的操作的時候都會用到最不容易駕馭的類型——指針。

          比如下面這個例子:

          //example 1:

          char str[12] = "Hello";

          char *p = str;

          *p = 'h';  //改變第一個字母

           

          //example 2:

          char *ptr = "Hello";

          *ptr = 'h';  //錯誤

           

          第一個字符串時用數(shù)組開辟的,它是可以改變的變量。而第二個字符串則是一個常量,也就是字面值。ptr只是指向它的指針而已,而不能改變指向的內(nèi)容。

          要想通過指針來改變常量是錯誤,正確的寫法應(yīng)該是用const指針。

          const char *ptr = "Hello";

          二,初識string類

          正是因為C風(fēng)格字符串(以空字符結(jié)尾的字符數(shù)組)太過復(fù)雜難于掌握,不適合大程序的開發(fā),所以C++標(biāo)準(zhǔn)庫定義了一種string類,定義在頭文件<string>。注意<string.h>和<cstring>都是錯誤的,這兩個頭文件主要定義C風(fēng)格字符串操作的一些方法,譬如strlen(), strcpy()等。第一個是C的頭文件格式,而第二個是C++風(fēng)格的頭文件,但是和<string.h>是一樣的,它的目的是為了和C兼容。

          看下面例子:

          //example 3:

          string str("world");   //可以用C風(fēng)格字符串初始化

          string words = "Hello";

          string greet = words;

          string  join = greet + words;  //可以像基本類型一樣操作


          *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。



          關(guān)鍵詞: string

          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉