標準庫string型別
string型別支援長度可變的字串,c++標準庫提供了各種相關操作。
#include using std::string
string標準庫支援幾個建構函式。建構函式是乙個特殊的成員函式,定義如何初始化該型別的物件。如下所示:
//①預設建構函式,s1為空串
string s1;
//②將s2初始化為s1的乙個副本
string s2(s1);
//③將s3初始化為乙個字串字面值副本
string s3("value");
//④將s4初始化為字元'c'的n個副本
string s4(n, 'c');
在c++基礎<1>中,我們了解了io標準庫。同樣的,也可以用標準輸入輸出操作符來讀寫string物件。
注:① 讀取並忽略開頭所有的空白字元(如空格,換行符,製表符);
② 讀取字元直至再次遇到空白符,讀取終止。
s.empty() //如果s為空串,則返回true,否則返回false
s.size() //返回s中字元的個數
s[n] //返回s中位置為n的字元,位置從0開始計數
s1 + s2 //把s1和s2連線成乙個新字串,返回新生成的字串
s1 = s2 //把s1內容替換為s2的副本
v1 == v2 //比較v1與v2的內容,相等則返回true,否則返回false
!=, , >= //保持這些操作符的含義
size()的返回值型別是
string::size_type
,不要把size的返回值賦值給乙個int變數。
string關係操作符
①如果兩個string物件長度不同,且短的string物件與長的string物件的前面部分相匹配,則短的string物件小於長的string物件。
②如果兩個string物件的字元不同,則比較第乙個不匹配的字元。
string物件賦值內部實現:必須先把st1占用的相關記憶體釋放掉,然後再分配給st1足夠存放st2副本的記憶體空間,最後把st2中所有字元複製到新分配的記憶體空間。
string物件相加
當進行string物件和字串字面值混合連線操作時,+操作符的左右運算元必須至少有乙個是string型別的。
標頭檔案:cctype
isalnum(c) //如果c是字母或數字,則為true
isalpha(c) //如果c是字母,則為true
iscntrl(c) //如果c是控制字元,則為true
isdigit(c) //如果c是數字,則為true
isgraph(c) //如果c不是空格,但可列印,則為true
islower(c) //如果c是小寫字母,則為true
isprint(c) //如果c是可列印的字元,則為true
ispunct(c) //如果c是標點符號,則為true
isspace(c) //如果c是空白字元,則為true
isupper(c) //如果c是大寫字母,則為true
isxdigit(c) //如果c是十六進製制數,則為true
tolower(c) //如果c是大寫字母,則返回其小寫字母形式,否則直接返回c
toupper(c) //如果c是小寫字母,則返回其大寫字母形式,否則直接返回c
ps: 歡迎關注
開發者小黑屋
,分享優質技術乾貨。
C 標準庫 (string 類)
一 成員函式 二 非成員有關的全域性函式 三 例項 感謝閱讀!其中的string是以char作為模板引數的模板類例項,把字串的記憶體管理責任由string負責而不是由程式設計者負責,大大減輕了c語言風格的字串的麻煩 std basic string提供了大量的字串操作函式,如比較 連線 搜尋 替換 ...
C 基礎 string類和標準模板庫
智慧型指標模板類 標準模板庫 泛型程式設計 函式物件 演算法其他庫 內容包括 標準c string類 模板auto ptr unique ptr和shared ptr 標準模板庫 stl 容器類 迭代器 函式物件 stl演算法 模板initializer list string類的建構函式 建構函式...
string標準庫型別 C
c 中string的學習體會 string 1 不允許把兩個字串字面值連線起來,乙個string物件 字串字面值返回的是string物件.string size type只是string裡方便移植性的定義的一種型別 2 cout include using namespace std int mai...