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...