c++ 增強了對字串的支援,除了可以使用c中的字串,還可以使用內建的資料型別string,string類處理字串會翻遍很多,完全可以代替c語言中的char 陣列和char 指標。
使用sting類需要包含標頭檔案< sting >, 下面我們就來介紹怎麼使用。
string 的幾種用法:
#include
#include
using namespace std;
void main()輸出結果:
c plus plusc plus plussssss
請按任意鍵繼續. . .上面的幾行**介紹了 幾種定義string 型別變數的方法,變數s1只是定義但是沒有初始化,編譯器會將預設的值附給s1,預設值是」「(空字串)。
變數s2再定義的同時被初始化為」c plus plus 」與c語言中的char 字串不同,string型別的變數結尾沒有
『\0』,string 型別的本質是乙個個string類,而我們定義的變數則是乙個個的string類的物件,變數s3在定義的時候直接用s2進行初始化,因此s3的內容也是『c plus plus』。變數s4被初始化為由5個』s』字串組成的字串,也就是』sssss『。
與c語言中的字串不同,當我們需要知道字串長度時,可以呼叫string類提供的length()函式。如下所示:
string s = "c plus plus";
int len = s.length();
cout<編譯執行的結果:
這裡,變數 s 也是 string 類的物件,length() 是它的成員函式。由於 string 變數的末尾沒有 『\0』 字元,所以 length() 返回的是字串的真實長度,而不是長度 +1。
轉換為 char 陣列字串
c++雖然提供了string類來替代c語言中的char 陣列形式的字串,但是有時候程式設計中必須要使用c風格的字串,為此,string類提供了乙個轉換的函式c_str();函式能夠將 string 變數轉換為乙個 const 字串陣列的形式,並將指向該陣列的指標返回。請看下面的**:
string filename = "input.txt";
ifstream in;
in.open(filename.c_str());為了使用檔案開啟函式 open(),必須將 string 型別的變數轉換為字串陣列。
#ifndef _iterator_debug_level
#define _iterator_debug_level 0
#else
#undef _iterator_debug_level
#define _iterator_debug_level 0
#endif
#include
#include
//string字串->c字串轉換
void main()
; s1.copy(arr,4,0);
cout << arr << endl;
system("pause");
}編譯輸出結果:
far away
far請按任意鍵繼續. . .
string 字串的輸入輸出
string類過載了輸入輸出的運算子,用「>>」進行輸入,用」<
#include
#include
using namespace std;
int main()執行結果:
c plus
c請按任意鍵繼續. . .雖然我們輸入了兩個由空格隔開的」c plus』,但是只輸出了乙個,這是因為輸入的運算子「>>」缺省會忽略空格,遇到空格就認為輸入結束,所以最後輸入的plus沒有被儲存到變數裡面。
c string類字串查詢
1 find 函式 find 函式用於在 string 字串中查詢子字串出現的位置,它其中的兩種原型為 size t find const string str,size t pos 0 const size t find const char s,size t pos 0 const 第乙個引數為...
C string類中的字串查詢
c string類中的字串查詢 類string提供了大量查詢功能和搜尋功能,其中比較常用的查詢和搜尋函式是find 函式 find first not of 函式 find first of 函式 find last not of 函式 find last of 函式 rfind 等。find 函式...
C string字串類具體用法
c 大大增強了對字串的支援,除了可以使用c風格的字串,還可以使用內建的 string 類。string 類處理起字串來會方便很多,完全可以代替c語言中的字元陣列或字串指標。string 是 c 中常用的乙個類,它非常重要,我們有必要在此單獨講解一下。使用 string 類需要包含標頭檔案,下面的例子...