C 串 基本string字元系列容器

2021-08-04 08:20:05 字數 1284 閱讀 2787

string類是不可變(final)的,對string類的任何改變,都是返回乙個新的string類物件.這樣的話把string類的引用傳遞給乙個方法,該方法對string的任何改變,對原引用指向的物件沒有任何影響,這一點和基本資料型別相似.

//這樣操作之後s1是"abc",s2是"def".

a 和 b 是不是指向同乙個位址呢,這個問題在各論壇都是談論很激烈,其實很簡單,跟下這些字串的記憶體位址就好了

c++stl提供了string基本字元系列容器來處理字串,可以把string理解為字串類,它提供了新增、刪除、替換、查詢和比較等豐富的方法。

string基本操作函式定義:

#include#includeusing namespace std;

string::iterator it;

//定義迭代器變數

string s,childs;

/*尾部新增字元*/

s+=childs;

/*刪除字元*/

int num,num1,num2;

it=begin;

s.erase(it+num);

//刪除第num個元素,陣列從0開始計數

s.erase(it+num1,it+num2);

//刪除第num1到num2區間所有元素,陣列從0開始計數

/*返回字串長度*/

s.length();

/*替換string物件的字元*/

int n;

int num;

s.replace(n,num,childs);

//從第n個開始將連續的num個字元替換為childs字串

/*搜尋子串或字元,查詢到返回下標值,查詢不到返回4294967295*/

s.find(childs);

/*string物件的比較*/

s.compare(childs);

//返回-1則schilds

/*反向排序string*/

reverse(s.begin(),s.end());

scanf的輸入速度比cin快很多

scanf()是c語言的函式,不支援string物件

1、從string物件尾部新增字元:

(1)直接採用"+"操作符,**如下:

#include#includeusing namespace std;

int main()

} if(ch==9){

reverse(s.begin(),s.end());

cout<

C 之string基本字元系列容器

string基本字元系列容器 c語言只提供了乙個插入型別用來處理字元,而對於字串,只能通過字串陣列來處理,顯得十分不便.c stl提供了string基本字元系列容器來處理字串,可以把string理解為字串類,它提供了新增,刪除,替換,查詢和比較等豐富的方法.雖然使用vector這樣的向量也可以處理字...

String基本字元系列容器

1 建立s 空字串 include include include include include include include includeusing namespace std int main string s cout 2 基本字元系列容器給string物件賦值 直接給字串物件賦值 in...

string基本字元系列容器 一

由於c語言中只提供了乙個char型別用來處理字元,對於字串的處理,我們往往都是通過字元陣列來處理的,這有些時候還是很不方便的。其實vector就和char型別的陣列很像,vector就是字串型別的陣列了。1.1 建立乙個string型別的物件 下面的 建立了乙個字串物件s,且s是乙個空串,他的長度是...