STL string 常見用法詳解

2022-09-14 06:27:10 字數 3651 閱讀 6052

//定義string的方式跟基本資料型別相同,只需要在string後跟上變數名即可

string str;

//如果要初始化,可以直接給string型別的變數進行賦值

string str = "abcd";

**(1) 通過下標訪問 **

//一般來說,可以直接像字元陣列那樣去訪問string

#include #include using namespace std;

int main()

return 0;

}//如果要讀入和輸出整個字串,則只能用 cin 和 cout

#include #include using namespace std;

int main()

//使用printf來輸出string

//即用c_str()將stringelixir轉換為字元陣列進行輸出

#include #include using namespace std;

int main()

**(2) 通過迭代器訪問 **

//定義迭代器

string::iterator it;

//通過*it來訪問string裡的每一位

#include #include using namespace std;

int main()

return 0;

}//string和vector一樣,支援直接對迭代器進行加減某個數字

**(1) operator+= **

//這是string的加法,可以將兩個string直接拼接起來

#include #include using namespace std;

int main()

**(2) compare operator **

//兩個string型別可以直接使用==, !=, <, <=, >, >=比較大小

//比較規則是字典序

#include #include using namespace std;

int main()

(3) length()/size()

//length()返回string長度,即存放的字元數,時間複雜度為o(1)

//size() 與 length()基本相同

string str = "abcxyz";

printf("%d %d\n", str.length(), str.size());

(4) insert()

//string的insert()函式有很多種寫法,這裡給出幾個常用的寫法時間複雜度為o(n)

// 1. insert(pos, string), 在pos號位置插入字串string

string str = "abcxyz", str2 = "opq";

str.insert(3, str2); //往str[3]處插入opq,這裡str2的位置直接寫"opq"也是可以的

cont << str << endl;

// 2. insert(it, it2, it3)

//it 為原字串的欲插入位置, it2 和 it3 為待插字串的首尾迭代器,用來表示串[it2, it3)將被插在it的位置上

#include #include using namespace std;

int main()

**(5) erase() **

//erase()有兩種用法:刪除單個元素,刪除乙個區間的所有元素。時間複雜度均為o(n)

// 1. 刪除單個元素

用於刪除單個元素,it為需要刪除的元素的迭代器

#include #include using namespace std;

int main()

// 2. 刪除乙個區間內的所有元素

//刪除乙個區間內的所有元素有兩種方法

last)

//即為刪除[first, last)

#include #include using namespace std;

int main()

length)

//其中pos為需要開始刪除的起始位置,length為刪除的字元個數

#include #include using namespace std;

int main()

**(6) clear() **

//clear()用以清空string中的資料,時間複雜度一般為o(1)

#include #include using namespace std;

int main()

**(7) substr() **

//substr(pos, len)返回從pos號位開始,長度為len的字串,時間複雜度為o(n)

#include #include using namespace std

int main()

(8) string::npos

//string::npos是乙個常數,其本身的值為-1

//但由於是unsigned_int型別,因此實際上也可以認為是unsigned_int型別的最大值

//string::npos用以作為find函式失配時的返回值。

//下面例項中可以認為string::pos等於-1或者4295967295

#include #include using namespace std;

int main()

if(string::npos == 4294967295)

return 0;

}

(9) find()

//str::find(str2), 當str2是str的子串時,返回其在str中第一次出現的位置

//如果str2不是str的子串,那麼返回string::npos

//str::find(str2, pos), 從str的pos號位開始匹配str2, 返回值與上相同

//時間複雜度為o(nm),其中n和m分別為str和str2的長度

#include #include using namespace std;

int main()

if(str.find(str2, 7) != string::npos)

if(str.find(str3) != string::npos) else

return 0;

}

(10) replace()

len, str2)把str從pos號位開始,長度為len的子串替換為str2

it2, str2)把str的迭代器[it1, it2)範圍的子串替換為str2

//時間複雜度為o(str.length())

#include #include using namespace std;

int main()

STL string詳細用法

需要新增標頭檔案 string string和string.h是不一樣的標頭檔案 string str1 string str2 abcd 1 通過下標訪問 如果要讀入輸出整個字串只能用cin和cout 可以用c str將string型資料轉化成字元陣列輸出 string str abcd prin...

STL string用法總結

參考自 1 string物件的定義和初始化以及讀寫 string s1 預設建構函式,s1為空串 string s2 s1 將s2初始化為s1的乙個副本 string s3 valuee 將s3初始化乙個字串面值副本 string s4 n,c 將s4 初始化為字元 c 的n個副本 cin s5 讀...

常見SVN用法詳解

本節和大家學習一下一些常用的版本管理工具svn用法,這些是基礎的東西,希望初學者或者對svn感興趣的朋友們認真學習,希望通過本節的介紹大家能夠掌握svn用法。下面讓我們看一下詳細介紹吧。版本管理工具svn用法擇要 推薦svn tortoisesvn是一組開源的版本管理工具,繼承了cvs的穩健性,又支...