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 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型別字串陣列中;