C 標準庫string型別操作總結

2021-07-12 04:25:26 字數 3698 閱讀 2231

string s1;         			//空串

string s2(s1); //將s2初始化為s1的乙個副本

string s3("value"); //s3初始化並賦值

string s4(n,"c"); //s4初始化,賦值為n個'c'

string s5(b,e); //初始化s5為迭代器b,e範圍內的副本

string s6(cp); //用c風格的字串初始化

string s7(cp,n); //cp前n個元素的副本

string s8(s2,pos2); //s8為s2從pos2開始到結尾的副本

string s9(s2,pos2,len2); //同上,不過的長度為len2(不超過s2的長度)

//其中有一種方法需要注意:

char no_null = ;

string s10(no_null); //錯誤,不是以null結尾的串

string s10(no_null,2); //ok,可以自動新增null結尾

s.empty();    			//判斷s是否為空,相當於s.size()==0

s.size(); //s的長度

s[n]; //n位置的字元(左值返回)

s1+s2; //返回s1和s2連線的串

s1=s2; //把s1替換為s2的副本

s1==s2; //判斷s1,s2是否相等

!=,,>= //保持慣有的含義

s.insert(p,t); //在迭代器p指向的元素前插入t,返回指向t的迭代器

s.insert(p,n,t); //同上,插入n個t,返回void

s.insert(p,b,e); //插入迭代器b,e間的元素,返回void

s.insert(pos,n,c); //在pos前插入n個字元c,返回s的引用

s.insert(pos,s2); //在pos前插入s2,返回s的引用

s.insert(pos,s2,pos2,len); //在pos前插入s2中從pos2開始的len個字元,返回s的引用

s.insert(pos,cp,len); //pos前插入cp陣列(c風格字串)的前len個字元,返回s的引用

s.insert(pos,cp); //在pos前插入cp,返回s的引用

s.assign(b,e); //用b,e間的元素替換s,返回s

s.assign(n,t); //用n個t替換s,返回s

s.assign(s2); //用s2的副本替換s,返回s的引用

s.assign(s2,pos2,len); //用s2從pos2開始的len長的副本替換s,返回s的引用

s.assign(cp,len) //用cp的前len個字元副本替換s,返回s的引用

s.assign(cp) //用cp的副本替換s,返回s的引用

s.erase(p); //刪除迭代器p指向的元素,返回指向後乙個元素的迭代器

s.erase(b,e); //刪除b,e間的元素,返回值同上

s.erase(pos,len); //刪除從pos開始的len個字元,返回s的引用

s.substr(pos,n); //返回s中從pos開始的n個字元組成的串

s.substr(pos); //返回s中從pos開始到結尾的串

s.substr(); //返回s的副本

s2 //string

s2,pos2,len2 //s2中下pos2開始的len2個字元

cp //c風格的串

cp,len2 //cp指向以空結束的前len2個字元

n,c //字元c的n個副本

b2,e2 //迭代器b2,e2範圍內的所有字元

//刪除s中從pos開始的len個字元,用args串替換,返回s的引用. args不能為b2,e2

s.replace(pos,len,args);

//刪除迭代器b,e範圍內的字元,用args替換,返回s的引用.args不能為s2,pos2,len2

s.replace(b,e,args);

s.find(args);    			//args的第一次出現

s.rfind(args); //最後一次出現

s.find_first_of(args); //args中任意字元的第一次出現

s.find_last_of(args); //args中任意字元的最後一次出現

s.find_first_not_of(args); //查詢第乙個不屬於args的字元

s.find_last_not_of(args); //查詢最後乙個不屬於args的字元

//<< compare的返回值: >0 s大; <0 s小; =0 二者相等

s.compare(s2); //比較s和s2

s.compare(pos1,n1,s2); //s從pos1開始的n1個字元與s2比較

s.compare(pos1,n1,s2,pos2,n2); //s從pos1開始的n1個字元與s2從pos2開始的n2個字元比較

s.compare(cp); //比較s和cp

s.compare(pos1,n1,cp); //s從pos1開始的n1個字元與cp比較

s.compare(pos1,n1,cp,n2); //s從pos1開始的n1個字元與cp的前n2個字元比較

需要包含標頭檔案:#include

i

salnum(c); //true if c 是數字或字母

isalpha(c); //true if c 是字母

iscntrl(c); //true if c 是控制字元

isdigit(c); //true if c 是數字

isgraph(c); //true if c 不是空格但可列印

islower(c); //true if c 是標點符號

isprint(c); //true if c 是空白字元

ispunct(c); //true if c 是大寫字母

isspace(c); //true if c 是空白字元

isupper(c); //true if c 是大寫字元

isxdigit(c); //true if c 是十六進製制數

tolower(c); //將c轉換為小寫

toupper(c); //將c轉換為大寫

ps: 歡迎關注

開發者小黑屋,分享優質技術乾貨。 

string標準庫型別 C

c 中string的學習體會 string 1 不允許把兩個字串字面值連線起來,乙個string物件 字串字面值返回的是string物件.string size type只是string裡方便移植性的定義的一種型別 2 cout include using namespace std int mai...

C 標準庫string型別

c 組成 基本資料型別和抽象資料型別標準庫 只需知道抽象資料型別支援的操作而不需關心內部表示 命名空間兩種使用方法 using std name 和 using namespace std 標準庫string型別和字串字面值不是同一型別 具體區別?getline 函式 string line get...

C 標準庫string型別

標準庫的string型別 include include using namespace std 或者可以這樣 using std string using std cin using std cout int main 12.下標操作可用作左值 string str some string for...