C++STL之string

原文參見:https://blog.csdn.net/y990041769/article/details/8763366

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’都能夠讀入

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;  //錯

(注:字符串尾部追加還可用s.append(“abc”)函數添加)

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.append(args); 將args接到s的後面

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

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

5:string的一些常用操作及用法

***string對象作爲vector元素

***string對象的數字化處理

***string對象與sscanf函數

6:string與數值的相互轉換
string s = to_string(int t=0);

補:截取字符串中的一部分:
函數原型:
string substr(int pos = 0,int n ) const;
函數說明:
參數1pos是可缺省參數,默認爲0,即:從字符串頭開始讀取。
參數2n表示取多少個字符
該函數功能爲:返回從pos開始的n個字符組成的字符串,原字符串不被改變

#include <iostream>
#include <string>
using namespace std ;
void main()
{
    string s="ABAB";
    cout << s.substr(2) <<endl ; //輸出AB
    cout << s.substr(0,2) <<endl ; //同上
    cout << s.substr(1,2) <<endl ; //輸出BA
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章