C STL之string的用法與簡單使用

2021-09-26 03:53:18 字數 2720 閱讀 8450

string是c++標準庫的乙個重要的部分,主要用於字串處理。可以使用輸入輸出流方式直接進行操作,也可以通過檔案等手段進行操作。同時c++的演算法庫對string也有著很好的支援,而且string還和c語言的字串之間有著良好的介面。雖然也有一些弊端,但是瑕不掩瑜。

使用標準c++中string類,必須要包含

#include

1.string的定義與初始化

(1)基本初始化

#include #include using namespace std;

int main()

{ string s;//預設初始化

string s1="qqqqq"; //拷貝初始化

string s2("wwww");//s2字面值,是「wwww」的副本

string s3(s1);//是s1的副本

string s4=s1;//是s1的副本

string s5(10,'c');//s5是10個c填充

//string s(cp,n)

char cs="12345";

string s7(cs,3);//複製字串cs的前3個字元到s當中

//string s(s2,pos2)

string s8="asac";

string s9(s8,2);//從s2的第二個字元開始拷貝,不能超過s2的size

//string s(s2,pos2,len2)

string s10="qweqweqweq";

string s11(s10,3,4);//s4是s3從下標3開始4個字元的拷貝,超過s3.size出現未定義

cout <

當構造的string太長而無法表達時會丟擲length_error異常 ;

(2)賦值與拷貝操作

詳情見下:

string與vector的轉換

#include #include #include using namespace std;

int main()

{ string a="hello";

string b="world";

string c,d,e;

vectordata;

c=a;

cout<

2.string的狀態

(1)大小

(2)判斷

#include #include using namespace std;

int main()

{ string a="hello";

string b(10,'a');

cout << a.size()<3.對string中的字元操作

(1)對string的插入字元操作與連線操作

(2)對string的刪除操作

#include #include using namespace std;

int main()

{ string a="hello";

a.insert(5," world");

cout

總結:

substr()返回字串,會提供範圍檢測。

operator和at()均返回當前字串中第n個字元的位置,但at函式提供範圍檢查,當越界時會丟擲out_of_range異常,下標運算子不提供檢查訪問。

若pos的值超過了string的大小,則substr函式會丟擲乙個out_of_range異常;

若pos+n的值超過了string的大小,則substr會調整n的值,只拷貝到string的末尾。

(4)對string的查詢操作

(5)對string的修改操作

4.string的遍歷

string類的迭代器處理:

string類提供了向前和向後遍歷的迭代器iterator,迭代器提供了訪問各個字元的語法,類似於指標操作,迭代器不檢查範圍。

用string::iterator或string::const_iterator宣告迭代器變數,const_iterator不允許改變迭代的內容。常用迭代器函式有:

const_iterator begin()const;

iterator begin(); //返回string的起始位置

const_iterator end()const;

iterator end(); //返回string的最後乙個字元後面的位置

const_iterator rbegin()const;

iterator rbegin(); //返回string的最後乙個字元的位置

const_iterator rend()const;

iterator rend(); //返回string第乙個字元位置的前面

rbegin和rend用於從後向前的迭代訪問,通過設定迭代器string::reverse_iterator,string::const_reverse_iterator實現

5.字串的其他操作

(1)string類的輸入輸出操作:

string類過載運算子operator>>用於輸入,同樣過載運算子operator《用於輸出操作。

函式getline(istream &in,string &s);用於從輸入流in中讀取字串到s中,以換行符』\n』分開。

string對字元操作除了使用迭代器,可以使用下標

c STL之string用法總結

1 標頭檔案 include 2 string類的常用建構函式 string str 構造空的string類物件,即空字串 string str str1 str1 和 str 一樣 string str abc 等價於 str abc string str abc strlen 等價於 abc 存...

C STL之string常用指令

string,大小可變的字串,有些類似於c中的字元陣列。只記載本人在acm中常用的函式,並且全部經過程式測試。1 初始化 string s1 預設建構函式s1為空串 string s2 s1 將s2初始化為與s1相同 string s3 aaa 將s3初始化為aaa string s4 3,b 將s...

C STL 之 string的模擬實現

include include using namespace std stl裡string的模擬實現 namespace my string else string const string s str nullptr capacity 0 size 0 string operator strin...