string物件操作

2021-07-03 05:42:20 字數 2072 閱讀 1327

標準string物件支援長度可變的字串操作。使用它需要包含標頭檔案,它位於std命名空間下。

1.string物件的定義和初始化

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

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

string s3("value"); //將s3初始為乙個字串字面值的副本

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

需要注意的一點是從s3的構造方式中注意字串常量和string物件的不同,因為有這種構造方式,所以它們之間可能存在一種隱式型別轉換,但要記住它們是不同的資料型別。

2.string物件的讀寫

標準輸入可以用來讀寫string物件,從標準輸入讀取string物件時,讀取的規則如下:

讀取並忽略開頭所有的空白字元(如空格,換行符,製表符)。

讀取字元直至再次遇到空白字元,讀取終止。

下面的測試:

#include 

#include

using

namespace

std;

int main()

測試輸入「 hello word」,它忽略了hello前面的空白字元,並讀取到hello終止。

因為輸入和輸出操作符返回左運算元作為運算結果,所以如果已知輸入引數的個數,即已知需要讀取幾個字串,可以使用下面的寫法。

#include 

#include

using

namespace

std;

int main()

這種情況下如果沒有輸入三個字串,程式會一直停止在哪兒等待。

讀取未知數目的string物件

和內建型別的輸入操作符一樣,string物件的輸入操作符也會返回所讀取的輸入流。因此可以把輸入操作作為判斷條件,可以使用下面的操作從標準輸入讀取一組string物件。

#include 

#include

#include

using

namespace

std;

int main()

使用getline讀取整行文字

getline和標準輸入流不同,它一次讀取一行但是不會讀取換行符,它遇到換行符會終止並返回。

#include 

#include

using

namespace

std;

int main()

從下面可以看出getline的用法,它不會忽略每行輸入的回車符,但是每次遇到換行符就會終止。

3.string物件的操作

s.empty(); //如果s為空,返回true,可以直接用這個函式來代替if(s.size()==0)

s.size(); //返回s中字元的個數

s[n]; //返回s中位置為n的字元,從0開始計算

s1+s2;//字串拼接

s1=s2;//把s1的內容替換成s2的副本

s1==s2;//比較s1和s2的內容

!=,,>=;//保持這個運算子的原有的含義

需要注意的是s1+s2引申出來的string和字串字面值相加的情況,因為存在從字串字面值到string型別的隱士型別轉換。注意字串字面值是不能簡單相加的,需要使用strcat函式。

string物件和字串字面值相加需要左右運算元中最少有乙個為string型別。

string s=」hello」+」,」+s1;//這種寫法是非法的,因為」hello」+」,」非法。

string s=s1+」hello」+」,」;//合法

對String物件的操作

寫乙個方法,實現字串的反轉,如 輸入abc,輸出cba test public void testrerverse 總結 string物件沒有反轉的方法,但是stringbuilder和stringbuffer有這個方法 寫乙個方法,實現字串的替換,如 輸入bbbwlirbbb,輸出bbbhhtcc...

string物件的定義與操作

1.string 物件的定義 四種初始化方式 string s1 string s1 s2 string s1 values string s1 n,c string型別操作符與getline函式對空白字元的處理 區別 string忽略空白字元,並在遇到空白字元時停止讀入,而getline函式將空白...

String物件的宣告和操作

string類是用來構造乙個字串物件的.字串物件操作在程式當中會頻繁的使用到,我們可以通過實現這個類,就可以構造我們需要的字串物件。通過string類構造字串物件的方式主要有兩種 1 常用的建立方式 string s 常用的建立方式 這種建立方式比較節省記憶體資源 如 string s1 abcd ...