1. 程式人生 > >C++string(字串)總結

C++string(字串)總結

string是在C++標準模板庫中的資料型別,string型別的物件用來存放字串,且不用擔心字串越界問題,標頭檔案為<string>

1、定義string物件

string 變數名;

 (1)

string s1,s2;  //定義物件s1,s2,沒有初始化,

string s3="hello"  //定義物件並初始化

cin>>s1>>s2;   //輸入:abc defg

cout<<s1<<' '<<s2<<' '<<s3<<endl;  //輸出:hello abc defg

(2)string物件陣列的定義

string str1[]={"ab","abc"};   //等同於string str1[2]={"ab","abc"}; 

string str2[3]; //如果不初始化,必須指定string物件陣列的長度;

cin>>str2[0]>>str2[1]>>str2[2];  //輸入: a bc defg

cout<<str1[1]<<str2[0]<<endl; 輸出:abc a

2、string物件字串的長度

string s="abcd"

string ch[2]={"ac","abc"};

int s_size=s.size(); //或int s_size=s.length(),表示字串s的長度

int ch[0]_size=ch[0].size(); //字串陣列ch[0]的長度

printf("s_size=%d,ch[0]_size=%d",s_size,ch[0]_size);

3、string 物件運算

string 物件之間可以用 <、<=、==、>=、> 運算子進行比較,還可以用+將兩個 string 物件相加、將一個字串常量和 string 物件相加、將一個字元陣列和 string 物件相加,相當於進行字串連線。+=

運算子也適用於 string 物件。string 物件在比較大小時是按詞典序比較的,而且是大小寫相關的。由於大寫字母的 ASCII 碼小於小寫字母的 ASCII 碼('A' ~ 'Z' 的 ASCII 碼是 0x41 ~ 0x5a,'a' ~ 'z' 的 ASCII 碼是 0x61 ~ 0x7a),所以 Zbc 比 abc 小。此外,string 物件還可以通過[]運算子和下標存取字串中的某個字元。例如: 

string s1 = "123", s2 = "abc11", s3;  //s3是空串,s3==""
s3 = sl + s2;  //s3 變成"123abc"
s3 += "de";  //s3 變成"123abcde"
bool b = s1 < s3;  //b 為 true
char c = s1[2];  //c變成'3'(下標從0開始計算)
s1[2] = '5';  //s1 變成”125"

4、string取子字串

string s="abcd"

string s1=s.substr(1,2); //取字串s從下標1開始,長度為2的子字串,即s1="bc";

5、string型別字串轉換為char型別字串

string ss="abcd"

char ch[10];

strcpy(ch,ss.c_str());  //c_str()函式把string型別字串轉換為char型別字串,然後複製到char型別字串陣列中;