進入C++時代
C++提供比字元陣列更好使用的string類別
它將帶來什麼其他的方便呢?
基本資訊
- 可以將string物件初始為C-格式字串
- 可以使用cin鍵盤輸入,儲存至string物件
- 可以使用cout顯示string物件
- 可以使用陣列標記符號([ ]),存取位在string物件中的某個字元
- 可以自動處理使用儲存的大小
宣告
string 名稱;
Ex:
#include <iostream> #include <string> //引入 <string> 標頭檔 using namespace std; int main(){ string name; //宣告名為name的string物件 }<span style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" data-mce-type="bookmark" class="mce_SELRES_start"></span>
初始化
字串名稱=“字串內容“;
C++11新增內容:
- 可以對sting物件進行列表初始化
- 可以省略“=”
(O) string c={“Cat”};
(O) string d {“Dog”};
Ex:
#include <iostream> #include <string> //引入 <string> 標頭檔 using namespace std; int main(){ string name={"Tony0612"}; //對物件name1進行列表初始化 string name {"Janet"}; //可以省略"=" cout << name1 << endl; //印出物件name1內容 cout << name2 << endl; //印出物件name2內容 }
建構子
- 建立一個大小為0的預設string物件
string 物件名稱();
- 將 string物件初始化成指標ptr所指向的字串
string 物件名稱 (const char* ptr);
- 建立包含n個元素的 string物件,並將每個元素初始化成字元c
string 物件名稱 (size_type n, char c);
- 初始一個 string物件,給 string物件str(複製建構函數)
string 物件名稱 (const string &str);
Ex:
#include <iostream> #include <string> //引入 <string> 標頭檔 using namespace std; int main(){ //建立一個大小為0的預設string物件 string name1; //將name1設值為"Tony0612" name1="Tony0612"; //建立一個內容為"Janet"的物件 string name2("Janet"); //建立一個內容為12個C的物件 string name3(12,'c'); //傳入物件name1,複製並建立新的物件 string name4(name1); cout << name1 << endl; cout << name2 << endl; cout << name3 << endl; cout << name4 << endl; }
拷貝字串
可直接使用”=”運算子
string one;
string two;
(O) one = two;
(O) one = ‘!’;
連接字串
直接使用”+”相加
Ex:
#include <iostream> #include <string> //引入 <string> 標頭檔 using namespace std; int main(){ string name1("Tony"); string name2("0612"); string name3; cout << name1 << endl; cout << name2 << endl; cout << name3 << endl; name3=name1+name2; //將name1跟name2相加,指派給name3 cout << name3 << endl; name3+="963"; //將name3再加上"963" cout << name3 << endl; }
成員函數
字串長度:
物件.size();
Ex:
#include <iostream> #include <string> //引入 <string> 標頭檔 using namespace std; int main(){ string name("Tony0612"); cout <<span style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" data-mce-type="bookmark" class="mce_SELRES_start"></span>< name.size(); }