C 之string基本字元系列容器

2022-06-28 09:03:13 字數 4125 閱讀 1533

string基本字元系列容器

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

雖然使用vector這樣的向量也可以處理字串, 但功能比不上string. 向量的元素型別可以是string, 如vector這樣的向量, 實際上就類似於c語言中的字串陣列.

使用string容器, 需要標頭檔案包含宣告"#include"

1.1建立string物件

下面這條語句建立了字串物件s, s是乙個空字串, 其長度為0:

#include

#include

using namespace std;

int main()

1.2給string物件賦值

給string物件賦值一般有兩種方式

(1)直接給字串物件賦值, 如:

#include

#include

using namespace std;

int main()

(2)更常用的方法是, 把字元指標賦給乙個字串物件:

#include

#include

using namespace std;

int main()

1.3從string物件尾部新增字元

在string物件的尾部新增乙個字元(char), 採用"+"操作符即可, 具體應用如下:

#include

#include

using namespace std;

int main()

1.4從string物件尾部追加字串

從尾部追加的方式有兩種

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

#include

#include

using namespace std;

int main()

#include

#include

using namespace std;

int main()

1.5給string物件插入字元

可以使用insert()方法把乙個字元插入到迭代器位置之前, **如下:

#include

#include

using namespace std;

int main()

1.6訪問string物件的元素

一般使用下標方式隨機訪問string物件的元素, 下標是從0開始計數的. 另外, string物件的元素是乙個字元(char), 這一點一定要清楚. **如下:

#include

#include

using namespace std;

int main()

1.7刪除string物件的元素

(1)清空乙個字串, 則直接給它賦空字串即可.

(2)使用erase()方法刪除迭代器所指的那個元素或乙個區間中的所有元素. **如下:

#include

#include

using namespace std;

int main()

1.8返回string物件的長度

採用length()方法可返回字串的長度; 採用empty()方法, 可返回字串是否為空, 如果字串為空, 則返回邏輯真, 即1, 否則, 返回邏輯假, 即0. **如下:

#include

#include

using namespace std;

int main()

1.9替換string物件的字元

使用replace()方法很方便的替換string物件中的字元, replace()方法的過載函式相當多, 常用的只有一兩個, 具體**如下:

#include

#include

using namespace std;

int main()

/*abcgood456

*/1.10搜尋string物件的元素或字串

採用find()方法可查詢字串中的第乙個字元元素(char, 用單引號界定)或者子串(用雙引號界定), 如果查到, 則返回下標值(從0開始計數), 如果查不到, 則返回4294967295.

find()方法有很多過載函式, 下面的**, 僅舉出了一種用法.

#include

#include

using namespace std;

int main()/*0

00418446744073709551615

*/1.11string物件的比較

string物件可以使用compare()方法與其他字串相比較. 如果它比對方大, 則返回1(整數); 如果它比對方小, 則返回-1(負數); 如果它與對方相等, 則返回0. **如下:

#include

#include

using namespace std;

int main()/*8

0-1*/1.12用reverse反向排序string物件

採用reverse()方法可將string物件迭代器所指向的一段區間中的元素(字元)反向排序.

reverse()方法需要宣告標頭檔案"#include". **如下:

#include

#include

#include

using namespace std;

int main()

/*987654321

*/1.13string物件作為vector元素

string物件可以作為vector向量的元素, 這種用法, 類似於字串陣列, **如下:

#include

#include

#include

#include

using namespace std;

int main()

/*jack

mike

tomjm3

*/1.14string型別的數位化處理

在acm競賽中, 常常需要將讀入的數字的每位分離出來, 如果採用取餘的方法, 花費的時間就會很長, 這時候, 我們可以將讀入的資料當成字串來處理, 這樣就方便, 省時多了, 下面這個程式演示了求乙個整數各位的和:

#include

#include

using namespace std;

int main()

cout << sum << endl;

return 0;}/*

45*/

1.15string物件與字元陣列互操作

下面這個程式演示了字元陣列與string物件的輸入與輸出:

#include

#include

using namespace std;

int main()

/*input:

abc123

output:

abc123

abc123

abc123

abc123

*/1.16string物件與sscanf函式

在c語言中, sscanf函式很管用, 它可以把乙個字串按你需要的方式分離出子串, 甚至是數字

下面這個程式演示了sscanf函式的具體用法:

#include

#include

using namespace std;

int main()

/*abc 123 pc

1 2 3

4 5 6

*/1.17string物件與數值相互轉換

有時候, string物件與數值之間需要相互轉換, 下面這個例子詳細說明了如何完成該工作的:

#include

#include

#include

using namespace std;

//c++方法: 將數值轉換為string

string converttostring(double x)

//c++方法: 將string轉換為數值

double convertfromstring(const string &s)

int main()

/*1975

1976

2008

*/

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是乙個空串,他的長度是...

string基本字元容器

使用string容器,需要標頭檔案 include,下面介紹string的幾種用法 1.建立string物件 string s 2.給string物件賦值 2.1 直接賦值 s abcdfeg 2.2用字元指標賦值 string s char ss 100 scanf s ss s ss 注意 sc...