STL標準庫string的使用

2021-10-04 09:58:40 字數 2365 閱讀 8101

內部實現和vector類似,用法為#include

string str1

(「liming」)

//以乙個c風格字串構造

string str2 = 「zhanghan」;string str3 (「abcde」,3)

//取abc作為str3的初始化值string str4;//空字串;

string str5 = 「」 //同上,空字串

【注】不可用null來初始化string物件,例如:sting str6 = null 為錯誤輸入

(1)初始化操作示例

string str1

("liming"

)//以乙個c風格字串構造

string str2 =

"zhanghan"

; string str3 (

"abcde",3

)//取abc作為str3的初始化值

string str4;

//空字串;

string str5 =

""//同上,空字串

string t1;		

t1.(

"something else");

t1.(

"abcde",3

);

t1.(

"abcde",1

,3)//起點位置為1,長度為3,即附加「bcd」3個字

t1.(

2,』h』)

;// 在末尾附加2個』h』字元

(3)clear() 清空字串

(4)at() 索引字串中某一位置的元素,也可對其進行修改

示例:

string t3 = 「hello」;t3.at(

1)= c;

// t3 ->hcllo,與t3[1] = 『c』等價

(1)取得字串物件內部的char* 理解:此「字串」物件是乙個封裝的類,其內部的核心是真正的字串型別資料以及字串的物理儲存位址,該操作就是為了獲得字串的真實儲存位置的指標。

操作:c_str(); 示例:

//找到str在記憶體中的位置並列印

intmain()

2)提前定義容器大小,節省效率示例:

//考慮效率問題

string t2;

t2.resize

(1024);

t2.clear;

//[細節],先清空新建的容器;

t2.(ab)

;t2.

(cd)

;

(3)字串的比較(過載了比較操作符==,>,《等)

示例:

string t4 =

"yes";if

(t4 ==

"yes"

)

(4)find()字元查詢

示例1

//字串的查詢	

string t5 =

"liming is doing homework"

;int p1 = t5.

find

('i');

//從左向右返回第乙個查詢到的字元的位置

int p2 = t5.

rfind

('r');

//從右向左返回第乙個查詢到的字元的位置

//存在返回位置,不存在返回-1示例2

示例2

//字串子串的查詢

int pos = str.

find

(「ing」)

;//返回子串的首字元位置

int pos = str.

find

(「ing」,pos+3)

;//在上次的基礎上繼續查詢

5)substr()子串

示例:

string str=

(「abcdefg」)

;string str1 = str.

substr(4

);//返回efgstring

str2 = str.

substr(4

,2);

//返回ef4、

string作為函式引數的使用一般情況下採用如下兩種形式(注意新增引用符號)

viod test

(const string& t)

void

test

(string& t)

C 標準模板庫(STL介紹) string

string str1 ab str2 xy string str str1 str2 比較規則是字典序 方法一 string str abcxyz str2 opq str.insert 3 str2 輸出 abcopqxyz 方法二 string str abcxyz str2 opq str....

C 標準模板庫(STL)之 string

在c語言中,一般使用字元陣列char str來存放字串,但是使用字元陣列有時會顯得麻煩,c 在stl中加入了string型別,對字串常用的需求功能進行了封裝,使得操作起來更方便,且不易出錯。如果需要使用string 需要新增string標頭檔案,即 include 注 string.h和string...

PAT裡STL庫string的使用

string a 123 456 string b acb string c a b 獲得初始指標,常與s.erase 一起使用,刪去開頭元素s.end 獲得結束指標 string a 123 a.erase a.begin cout a.erase a.end coutcin a 會以空格和換行作...