C 基礎 03 標準庫string型別

2021-07-12 04:24:24 字數 1936 閱讀 3110

標準庫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...