用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...