C 字串詳解

2021-09-09 07:42:50 字數 1863 閱讀 1059

參考:書本《c++ primer plus》

string類

字串修改

2.assign()

3.insert()

4.replace()

5.其他:copy()和swap()

c++中的字串有兩種:c-風格字串和基於string類庫的方法

c-風格字串以空字元結尾(』\0』)

使用引號括起的字串隱式地包括結尾的空字元

string轉為c-風格字串:c_str()方法(str.c_str()

方法一呼叫:cin.getline(name,20),最多讀取19個字元存入name中,剩下乙個字元空間儲存末尾自動新增的空字元。當讀取指定數目的字元或遇到換行符時停止讀取。

方法二呼叫:cin.get(name,20)不丟棄換行符,保留在輸入佇列中,所以連續兩次呼叫時第二次呼叫讀取的第乙個字元是上一次輸入最後遺留下來的換行符,解決這一問題是在第一次呼叫後呼叫cin.get(),吸收換行符,接下來再進行第二次呼叫即可。

或合併兩次呼叫:cin.get(name,20).get(),同樣getline()方法也可以合併兩次呼叫:cin.getline(name,20).getline(age,8),將輸入中連續的兩行分別讀入到陣列nameage中。

tips:cincin.get(),前者自動跳過空白字元,後者可接受空白讀取。若用cin讀取字元,輸入abc de f g,輸出顯示為abcdefg(不顯示空格),cin.get()則會保留空格輸出。

要使用string類,必須在標頭檔案中包含標頭檔案string#include(新版本不包含也可使用)。string類具有自動調整string大小的功能。

string物件和字元陣列相同點在於,可以使用cin接受輸入,cout顯示輸出,可以使用陣列表示法訪問儲存在string物件中的字元(如:str[2],字串第三個字元)。string物件和字元陣列主要區別在於,可以將string物件宣告為簡單變數,而不是陣列:

string str1;//建立乙個空的string物件

string str2 = "lyh";//建立乙個初始化的string物件

賦值

賦值時不可以將乙個陣列賦給另乙個陣列,但是可以將乙個string物件賦給另乙個string物件:

string str1;

string str2 = "lyh";

str1 = str2;//valid

拼接可以使用運算子++=

string str3;

str3 = str1 + str2;//str1和str2拼接後賦值給str3

str1 += str2;//將字串str2加到str1末尾

字串長度

int len1 = str1.size();//計算string類字串長度,亦可呼叫length():int len1 = str1.length()

int len2 = strlen(charr1);//計算字串陣列長度

c 字串詳解

c 提供了兩種字串表示形式,第一種為相容c的字元陣列形式,第二種是c 中引入的string類形式。1 c語言的字串實際上是以空字元 0 作為終止符的一維字元陣列。如下 char a 如果字元陣列中沒有出現空字元 0 則不能稱作字串,比如 char a 如果不新增終止符,輸出字元陣列a會得到 燙燙燙 ...

C 字串操作詳解

選用c 標準程式庫中的string類,是因為他和c string比較起來,不必擔心記憶體是否足夠 字串長度等等,而且作為乙個類出現,他整合的操作函式足以完成我們大多數情況下 甚至是100 的需要。我們可以用 進行賦值操作,進行比較,做串聯 是不是很簡單?首先,為了在我們的程式中使用string型別,...

c語言字串詳解

c語言字串,c語言處理字串一般使用字元陣列來處理,記得加上結束符,否則會出現亂碼。1 通過字元陣列來處理 include include include int main void 實際上字串長度為5,賦值比5位大,自動加上結束符號 char str2 0 表示結束符號 char str3 10 c...