C string 型別(入門基礎)

2021-10-21 23:33:54 字數 2763 閱讀 9958

用string 物件處理字串

用字元陣列處理字串時,常常會發生陣列越界的問題。因此c++標準模板庫中設計了「string」資料型別,專門處理字串。string 型別的變數就是專門用來處理字串 的,也叫「string」物件。string型別並不是c++語言的基本資料型別,而是c++ 標準模板庫中的乙個「類」。

在c++程式設計時,優先考慮使用string物件來處理字串,因為其用法比字元陣列更簡單,而且不易出錯。

定義string物件

定義string物件和其他資料型別沒有什麼不同:

string 變數名;
而且定義的時候還可以初始化,例如:

string str1;

string city=

"beijing"

;

定義string物件時,如果不對它進行初始化,那麼它的值為空,即」 「。

與字元陣列不同的是乙個string 物件的體積,大小是固定的,即表示式」sizeof(string)"的值是固定的,和其中存放的字串的長度無關。但是這個固定的值在不同編譯器上是不同的。string 物件並不會直接存放字串,而是會在別的地方開闢空間存放,string物件只存放該記憶體空間的位址,或者再加上其他資訊。

還可以定義string物件陣列,例如:

string as=

;cout<

;//輸出上海。

string 物件的輸入輸出

string物件可以用cin 和cout進行輸入和輸出,例如:

string s1,s2;

cin>>s1>>s2;

cout<cin讀入時會忽略開頭的製表符、換行符以及空格,當遇到空格或者換行符就停止(不會讀入空字元)

#include

#include

#include

using namespace std;

intmain()

return0;

}

string物件的賦值

string 物件可以相互賦值,也可以用字串常量和字元陣列的名字對string物件進行賦值。賦值時不需要考慮被賦值物件是否有足夠的空間存放。例如:

string s1,s2=

"ok"

;s1=

"china"

;s2=s1;

//s1和s2 不等長也沒關係,賦值後s2的內容和s1一樣。

char name=

"lily"

;s1=name;

用普通字串對string物件進行賦值,普通字串的內容會被複製到string物件所管理的那片記憶體空間去。

string物件的運算

string物件之間可以「","<=","==",">=",運算子進行比較,還可以用」+"運算子將連個string 物件進行相加,或者將乙個字串常量和string物件相加,將乙個字元陣列和string物件相加,相當於做字串連線。「+=」運算子也適用於string物件。此外,string物件還可以通過「"運算子和下標,訪問字串中的某個字元。例如:

string s1=

"123"

,s2=

"abc"

,s3;

s3=s1+s2;

//s3變成"123abc"

s3+=

"de"

;//s3變成"123abcde"

bool b=s1

//b為r=true

char c=s1[2]

;//c變成'3'

s1[2]=

'5';s1變成"125"

string物件比較大小時,是按照字典順序比較的,而且是大小寫相關的。由於大寫字母的ascll碼小於小寫字母的ascll碼。所以「zbc"比"abc"小。

string物件用法示例:

string物件還有一些成員函式,可以方便的實現一些功能。如查詢子串等,這些成員函式的呼叫方法就是」string「物件名。

#include

#include

//使用string物件必須包含的標頭檔案

using namespace std;

intmain()

else

s2[1]

='a'

; s1=

"xyz"

+s2;

string s3=s1+s2;

cout <<

"3)"

<

cout<<

"4)"

<

size()

<

//求s3的長度,輸出4)9

string s4=s3.

substr(1

,3);

//求從下標1開始,長度為3 的子串。

cout<<

"5)"

<

char str[20]

;strcpy

(str,s4.

c_str()

);//複製s4中的字串到str

C string型別(引用型別)

c string型別 引用型別 2016年03月31日 10 34 45 閱讀數 966 名稱 cts型別 說明string system.string unicode字串 string str1 hello string str2 world 這是乙個值型別的賦值,但string是乙個引用型別。s...

Python 入門基礎 基礎型別

數字 python 各個進製轉化 可以使用bool 來判斷所屬物件是否為空 python 原始字元 r 但是注意 如下圖所示,這種是不允許的 ord 轉換 asicc碼 ord w 119 集合序列總結 str,list,tuple 序列 1.序號 讀取序列元素 0 返回單個值 2.切片 3 返回序...

c string基礎用法

string s 生成乙個空字串s string s1 s1 string s str 將str字串作為s的初值 string s2 hello s2 hello string s num,c 生成乙個字串,包含num個c字元 string s3 4,k s3 kkkk strings str,st...