C/C++ - String 用法與心得完全攻略
文章推薦指數: 80 %
一、String 簡介. string 是一個保存char 的序列容器,把字串的記憶體管理責任交由string 負責而不是programmer,減輕 ...
Pages
Home
About
Contact
skiptomain|
skiptosidebar
2015年7月23日星期四
C/C++-String用法與心得完全攻略
於
7/23/201511:55:00下午
標籤:
SoftwareDevelopment-C/Cpp
一、String簡介
string是一個保存char的序列容器,把字串的記憶體管理責任交由string負責而不是programmer,減輕了C語言風格字串的麻煩,使用前預先#include
String的特色
提供了大量的字串操作函式。
可與C語言風格字串雙向轉換。
二、成員函式介紹
stringoverload許多operator,包括+、+=、>等,這些operator對字串操作非常方便,因此assign()、append()、compare()等函數,除非一些特殊需求,不然一般是用不上。
儘量使用operator,這樣可以讓程序更加易懂。
常用方法
賦值=:將字串指定給另一個字串。
相等比較==:比較兩個字串的字元內容是否相同。
串接字串+:直接使用+運算子來串接字串。
存取字符[]、str.at():如字元陣列的操作,at帶邊界檢查。
字串長度str.size():字串長度。
字串為空str.empty():字串是否為空
字串長度str.length():字串的長度。
[用心去感覺]串接 operator +
只要等式裡有一個string,就可以一直連續用stringoverload的+功能。
(需要注意的是,在開始的兩項中必須有一項是string,不然compiler在解語法樹的時候會出錯。
)
[用心去感覺]賦值 operator =
可以將一個C-Style的字串指定給string,但不能將一個string指定給char陣列。
[用心去感覺] 存取operator [],str.at()
講究效率,使用[],講究穩定性,使用at()。
進階用法
assign(str,start,num):從str的第start個字元取出num個字元來指定給另一字串物件。
append(str,start,num):從str的第start個字元取出num個字元來附加至另一字串物件之後。
find(str,0):從引發find()的字串物件中第0個字元尋找是否有符合str的子字串。
insert(start,str):將str插入引發insert()的字串物件第start個字元之後。
[用心去感覺]find()錯誤返回 basic_string::npos
basic_string::npos
staticconstsize_typenpos=-1;
npos是一個常數,表示size_t的最大值。
許多容器都有提供,用以表示不存在的位置。
三、常用的string程式寫法
#include
延伸文章資訊
- 1CString與string、char*的區別和轉換 - 程式人生
string是C++標準庫(STL)中的型別,它是定義的一個類,定義在<string>標頭檔案中。裡面包含了對字串的各種常用操作,它較char*的優勢是內容可以動態拓展, ...
- 2Difference between string and char[] types in C++
A char array is just that - an array of characters: ... A string is a class that contains a char ...
- 3字元陣列與字串 - OpenHome.cc
字串就是一串文字,在C++ 談到字串的話,一個意義是指字元組成的陣列,最後加上一個空(null)字元 '\0' ,例如底下是個 "hello" 字串: char text[] = {'h', '...
- 4c/c++中string与char的区别 - CSDN博客
- 5[C++] string 和char[]互轉(string and char[] transform)
處理檔案資料,最常使用char[]或string來儲存字串,前者是字元陣列,為C所擁有,當然C++也可以使用;…