內部實現和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 會以空格和換行作...