C 中string類詳解

2021-07-10 12:06:16 字數 3848 閱讀 2970

(1

)string

型別的建構函式:

string  s

定義乙個空的

string

型別(預設建構函式)

string s(cp)用cp

(c風格的字串)初始化

string

物件string s(s1)

用string

物件s1

初始化s

string s(n,』c』)將s

初始化為

』c』的

n個副本

string s(cp,n)將c

風格字串中前

n個字元初始化

sstring s(s1,pos)

s被初始化為從

s1開始到末尾的字元

string s(s1,pos,len)將s

初始化為從

s1下標

pos的

len個字元,如果

pos>s1.size()

,操作為定義,無論

len有多長,最多只能複製

s1.size()-pos

個字元string s=s1

複製建構函式(

string

物件)string s=cp

複製建構函式(

c風格字串) (

2)string

物件的讀寫:

string

物件可以通過

cout

可以輸出,通過

cin和

getline

輸入;cin

和getline

的區別:

1) 

cin讀取並忽略開頭的所有空白字元(空格、換行符、製表符),讀取字元直到遇到空白字元,讀取終止;

2) 

getline

(cin

,line

)將istream

引數作為返回值,

getline

並不忽略開頭的換行符,讀取輸入的下一行,遇到換行符結束,但不儲存換行符,如果第乙個字元是換行符,結果為空字串;(3

)string::size_type

:size()

操作返回型別,該定義與

unsignedint

或者unsigned long

有相同的含義,根據具體長度決定,所以程式設計師一般將返回型別賦值於

string::size_type,

這樣避免越界或者負數的產生。(4

)string

型別是字元的容器,也是順序容器的一種,因此支援迭代器操作;(5

)string

型別支援

capacity

和reserve

操作,也就是容器的自增長操作;(6

)string

不支援以棧的形式操縱容器,因此它不支援

front

、back

、pop_back

、push_front

、pop_front

操作。(7)

string

物件支援與順序容器共有的插入、刪除、替換、取大小操作;(8

)string

物件一些常用的特有操作:

s.substr(pos,n)

返回從下標

pos開始的

n個字串

s.substr(pos)

返回從下標

pos開始到

s末尾的所有字串

s.substr()返回s

的副本)

args

串接到

s後面,返回

s的引用

s.replace(pos,len,args)刪除s

從pos

開始的len

個字元,並用

args

替換之,返回

s的引用,不要求刪除長度與插入長度相同

s.replace(b,e,args)刪除s

中由迭代器b和

e標記範圍的字元,並用

args

替換之,返回

s的引用,不要求刪除長度與插入長度相同

上述中,args

所有可能的表示如下:

s另外乙個

string

物件s,pos,len從s

下標pos

開始的n

個字元cp

cp指向的

c語言風格的字串

cp,len

cp指向的

c語言風格字串的前

len個字元

n,c字元c的

n個副本

b,eb和e

迭代器指向的元素 (

9)string

型別的查詢函式:

string

型別的查詢操作全部返回

string::size_type

(找到匹配,是其相應的位置)型別或者

string::npos

(沒有找到匹配)

s.find(args)

查詢args在s

中的第一次出現

s.rfind(args)

查詢args在s

中的最後一次出現

s.find_first_of(args)

查詢args

中任意字元在

s中的第一次出現

s.find_last_of(args)

查詢args

中任意字元在

s中的最後一次出現

s.find_first_not_of(args)

查詢第乙個不屬於

args

的字元s.find_last_not_of(args)

查詢最後乙個不屬於

args

的字元

以上args

所有可能情況如下:

c,pos

從下標pos

開始查詢字元

cs1,pos

從下標pos

開始查詢

s1cp,pos

從下標pos

開始查詢

c風格字串

cpcp,pos,n

從下標pos

開始查詢

c風格字串

cp的前

n個字元 (

10)string

型別字串的鏈結操作「

+」操作符左右必須至少有乙個

string

型別:string s1=」hello」+」nihao」   

錯誤string s1=」hello」+s2  

正確string s1=s2+」hello」+」nihao」 

正確string s1=

「hello

」+」nihao」+s2  錯誤(

11)string

型別提供乙個名為

c_str

的成員函式,可以提取

string

型別中的

c風格字串,該函式返回的指標指向

const char

型別的陣列,必須將其賦值給

const char

型別的指標或者陣列:

string str(「hello」);

char *cr1=str.c_str();   

錯誤const char *cr2=str.c_str();  

正確

C 中的string詳解

1 string s 呼叫預設建構函式,s為乙個空字串 2 string s str 等價於string s str 呼叫拷貝建構函式,s是str的備份 3 string s str,strindex 將字串str內始於strindex位置的部分當作s的初始值 4 eg.string str 123...

String類詳解 方法

字元操作 tochararray 將字串轉換為字元陣列 charat 根據下標取出字串中的響應字元 其他 substring int start,int end 根據下標取字串的值,含頭不含尾 split 根據 分割字串,返回的是字元陣列 replace he helll 替換相應字串。startw...

java系統類 String類詳解

1.系統類 string 學習系統常用方法 方法的使用 字串是個常量 常量字串 對字串進行操作 都返回是乙個新的字串 原字串不能更改 字串存在常量池中 字串本身沒有發生變換 而是引用位址發生了變化 相當於 指標重新指向 string str1 adcde str1 uvwxyz string1是乙個...