C 標準模板庫(STL)之 string

2022-06-07 21:48:08 字數 2179 閱讀 9823

在c語言中,一般使用字元陣列char str來存放字串,但是使用字元陣列有時會顯得麻煩,c++在stl中加入了string型別,對字串常用的需求功能進行了封裝,使得操作起來更方便,且不易出錯。

如果需要使用string ,需要新增string標頭檔案,即#include(注:string.h和string是不一樣得標頭檔案)

一、string定義

string str

賦值:string  str=「abcd」

二、string中內容的訪問

(1)通過下標訪問

#include#include

#include

using

namespace

std;

intmain()

printf("\n

");return0;

}

(2)通過迭代器訪問

當使用insert()和erase()時,需要用迭代器為引數

定義:

string::iterator it;

訪問:

#include#include

#include

using

namespace

std;

intmain()

printf("\n

");return0;

}

輸出:abcde

三、string常用函式

(1)operator+=

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

#include#include

#include

#include

#include

using

namespace

std;

intmain()

輸出:abcdexuy

(2)compare operator

兩個string型別可以直接使用==,!=,<,<=,>,>=比較大小,比較規則是字典序

#include#include

#include

#include

#include

using

namespace

std;

intmain()

else

if(str1>str2)

else

//printf("\n");

return0;

}

輸出:str1(3)length() / size()

返回string的長度

#include#include

#include

#include

#include

using

namespace

std;

intmain()

輸出:5

(4)insert()

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

2.  insert(it,t2,t3)  it為原字串的欲插入位置,it2和it3為待插入字串的首位迭代器,用來表示串[it2,it3)將被插入在it的位置上

(5)erase()

1.刪除單個元素

str.erase(it)用於刪除單個元素,it為需要刪除的元素的迭代器

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

(6)clear()

clear()用以清空string中的資料

(7)substr()

substr(pos,len)返回從pos號位開始,長度為len的子串

(8)string::npos

是乙個常數,值為-1

(9)find()

str.find(str2),當str2是str子串時,返回其在str中第一次出現的位置,如果str2不是str的子串,那麼返回string:npos

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

(10)replace()

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

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

C 標準模板庫(STL)之vector

vector即長度可變的陣列 標頭檔案宣告 include using namespace std 1.定義 vector int v vectorint age 兩個 之間需加空格,不然會被誤以為是移位操作 vector int vi 100 vector陣列,vi 0 vi 99 每乙個都是乙個...

C 標準模板庫(STL)之 vector

一 vector的常見用法詳解 1.vector的定義 標頭檔案 include 單獨定義乙個vector vectorname 注 如果typename也是乙個stl容器,定義的時候要記得在 符號之間加上空格,因為一些使用c 11之前標準的編譯器會把它視為移位操作,導致編譯錯誤。如果typenam...

C 標準模板庫(STL)之Stack

stack 棧,乙個後進先出的容器。1.1 stack的定義 加上標頭檔案 include和using namespace std stacksk 1.2 stack容器元素的訪問 stack是一種操作受限制的線性表,只能通過top 來訪問棧頂元素。include include using nam...