STL string用法總結

2021-09-24 20:18:21 字數 3244 閱讀 8909

參考自:

1:string物件的定義和初始化以及讀寫

string s1;預設建構函式,s1為空串

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

string s3("valuee");將s3初始化乙個字串面值副本

string s4(n,'c');將s4 初始化為字元'c'的n個副本

cin>>s5;讀取有效字元到遇到空格

getline(cin,s6);讀取字元到遇到換行,空格可讀入,知道『\n』結束(練習在下乙個**中),

getline(cin,s7,'a');乙個直到『a』結束,其中任何字元包括'\n'都能夠讀入,可以試試題:uva10361

2:string物件操作

s.empty()判斷是否為空,bool型

s.size()或 s.length() 返回字元的個數

s[n]返回位置為n的字元,從0開始計數

s1+s2連線,看下面例子:

可用此方法給字串後面新增字元如:s=s+'a'; 

a:  string s2=s1+", ";  //對,把乙個string物件和乙個字元面值連線起來是允許的

b:  string s4="hello "+", ";   //錯,不能將兩個字串面值相加

c:  string s5=s1+", "+"world";   //對,前面兩個相加相當於乙個string物件;

d:  string s6="hello" + ", " +  s2;  //錯

s1=s2替換

s1==s2相等,返回true或false

!=,<,<=,>,>=  字串比較,兩個字串短的與長的前面匹配,短的小於長的

3: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

isupper(c)如果c是大寫字元,則為true

isprint(c)如果c是可列印的字元,則為true

ispunct(c)如果c是標點符號,則為true

isspace(c)如果c是空白字元,則為true

isxdigit(c)如果c是十六進製制數,則為true

tolower(c)如果c是大寫字元,則返回其小寫字母,否則直接返回c

toupper(c)跟tolower相反

4:string物件中一些函式

/*-------------------------插入函式----------------------------------包括迭代器操作和下標操作,下標操作更靈活*/

s.insert( it , p );  把字串p插入到it的位置

s.insert(p,n,t);   迭代器p元素之前插入n個t的副本

s.insert(p,b,e);      迭代器p元素之前插入迭代器b到e之間的所有元素

s.insert(p,s2,poe2,len); 在下標p之前插入s2下標從poe2開始長度為len的元素

s.insert(pos,cp,len);  下標pos之前插入cp陣列的前len個元素。

/*-----------------------替換函式-------------------------------*/

s.assign(b,e);  用迭代器b到e範圍內的元素替換s

s.assign(n,t);  用n個t的副本替換s

a.assign(s1,pos2,len);從s1的下標pos2開始連續替換len個。

s.replace ( 3 , 3 , " good " ) ;   從第三個起連續三個替換為good

s.substr(i,j)   擷取s串中從i到j的子串  //string::npos  判斷字串是否結束

/*-----------------------刪除函式-----------------------------*/

s.erase( 3 )||s.erase ( 0 , 4 ) ;  刪除第四個元素或第一到第五個元素

/*----------------------其他函式-----------------------------*/

s.find ( " cat " ) ;  超找第乙個出現的字串」cat「,返回其下標值,查不到返回 4294967295,也可查詢字元;

s.compare ( " good " ) ;  s與」good「比較相等返回0,比"good"大返回1,小則返回-1;

reverse ( s.begin(), s.end () );  反向排序函式,即字串反轉函式

題目:hdu_2017

isdigit(c);  //若是數字,返回true

hdu_1062

getline(cin,a);  //讀入一行到a

a.find(" ");  //在a中找" ",也可找字串或者字元,若找不到返回a.npos(4294967295)

a.substr(i,j);  //擷取a中從i到j的子串(包括i不包括j)

a.substr(i);  //擷取a中從i到末尾的子串

reverse(a.begin(),a.end());  //反轉a

hdu_1113

string a;

sort(a.begin(),a.end());  //sort可以給string排序

標籤: stl_string

STL string詳細用法

需要新增標頭檔案 string string和string.h是不一樣的標頭檔案 string str1 string str2 abcd 1 通過下標訪問 如果要讀入輸出整個字串只能用cin和cout 可以用c str將string型資料轉化成字元陣列輸出 string str abcd prin...

學習總結 STL string

標頭檔案 宣告 string x x為變數名 函式 getline cin,x 預設以換行符為終點 getline cin,x,以 為終點 標頭檔案 宣告 istringstream x x為變數名,初始化操作為istringstream x 1 23 4 ostringstream x 定義乙個輸...

STL string 常見用法詳解

定義string的方式跟基本資料型別相同,只需要在string後跟上變數名即可 string str 如果要初始化,可以直接給string型別的變數進行賦值 string str abcd 1 通過下標訪問 一般來說,可以直接像字元陣列那樣去訪問string include include usin...