C 對於字串string操作的總結

2021-10-21 13:29:27 字數 2762 閱讀 5882

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...