c++字串string操作的總結
參考:1.構建string物件方法
string s;
//生成乙個空字串s
string s
(s2)
;//拷貝建構函式 生成s2的複製品
string s
("value");
//用字串value初始化s
string s
(n,'c');
//生成乙個字串,包含n個c字元
string s
(b,e)
;//以區間b,e內的字元作為字串s的初值
string s
(cp,n)
;//取字元陣列,前n個字元作初值
string s
(s2,pos2)
;//將字串s2"始於位置pos2"部分當作字串的初值
string s
(s2,pos1,len)
;//將字串s2內"始於pos1且長度最多len"的部分作為字串的初值s.~
string()
;//銷毀所有字元,釋放記憶體
2.修改string物件的方法
與容器共有的string操作
s.
insert
(p,t)
;//在迭代器p指向的元素之前插入乙個值為t的新元素,返回指向新插入元素的迭代器
s.insert
(p,n,t)
;//在迭代器p指向的元素之前插入n個值為t的新元素
s.insert
(p,b,e)
;//在迭代器p指向的元素之前插入迭代器b和e標記範圍內所有的元素。返回void
s.assign
(b,e)
;//在迭代器b和e標記範圍內的元素替換s。對於string型別,該操作返回s;對於容器型別,則返回void
s.assign
(n,t)
;//用值為t的n個副本替換s。對於string型別,該操作返回s;對於容器型別,則返回void
s.erase
(p);
//刪除迭代器p指向的元素。返回乙個迭代器,指向被刪除元素後面的元素
s.erase
(b,e)
;//刪除迭代器b和e標記範圍內所有的元素。返回乙個迭代器,指向被刪除元素段後面的第乙個元素
3.string型別特有的版本
string以陣列的形式儲存,可以用陣列的下標進行修改操作:
s.
insert
(pos,n,c)
;//在下標pos的元素之前插入n個字元c
s.insert
(pos,s2)
;//在下標pos的元素之前插入string物件s2
s.insert
(pos,s1,pos2,len)
;//在下標為pos的元素之前插入s2中從下標pos2開始的len個字元
s.insert
(pos,cp,len)
;//在下標為pos的元素之前插入cp所指向陣列的前len個字元
s.insert
(pos,cp)
;//在下標為pos的元素之前插入cp所指向的以空字元結束的字串副本
s.assign
(s2)
;//用s2的副本替換s
s.assign
(s2,pos2,len)
;//用s2中從下標pos2開始的len個字元替換s
s.assign
(cp,len)
;//用cp所指向陣列的前len個字元副本替換s
s.assign
(cp)
;//用cp所指向的以空字元結束的字串替換s
s.erase
(pos,len)
;//刪除下標pos開始的len個字元
4.string型別的查詢
s.
find
(args)
;//在s中查詢args的第一次出現
s.rfind
(args)
;//在s中查詢args的最後一次出現
s.find_first_of
(args)
;//在s中查詢args的任意字元的第一次出現
s.find_last_of
(args)
;//在s中查詢args的任意字元的最後一次出現
s.find_first_not_of
(args)
;//在s中查詢第乙個不屬於args的字元
s.find_last_not_of
(args)
;//在s中查詢最後乙個不屬於args的字元
5.string物件的比較
str1.
compare
(str2)==0
;//字串比較
str1.
compare(3
,4,str2)==0
;//str1的子串(從索引3開始,包含4個字元)與str2進行比較
str1.
compare(3
,4,str2,3,
4)==0
;//str1指定子串與str2指定子串進行比較
str1.
compare(0
,2,"hi,hello",2
)==0;
//str1指定子串與字串的前n個字元進行比較
對於String字串的鏈結
傳統的做法是 var str hello str world 但是每次做賦值都要消耗資源,因此效率低下。也可以使用如下做法 var str new array str 0 hello str 1 world str.join 這種方式好了一點兒,但是不能確切的反映出方法的意圖。為了使它更容易理解,可...
C 字串string操作
相比於c語言而言,c 提供了太多的寫好了的型別和方法,其中string型別就是用起來特別方便的一種。那麼問題來了,既然有c語言的char型,為什麼還要學習string型別呢?我碰到過的也是最主要的乙個原因就是string型別更節省空間,用多少開多少,而char型別的陣列就不是了,必須開最大值。其次還...
c 字串string的操作
1.字串的宣告 include include include using namespace std int main else cout 方法2,string npos可強制轉換為 1 n int local local static cast s.find make 20 if local 1...