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