[類別] String類別

進入C++時代
C++提供比字元陣列更好使用的string類別
它將帶來什麼其他的方便呢?

需要載入 <string> 標頭檔

基本資訊

  • 可以將string物件初始為C-格式字串
  • 可以使用cin鍵盤輸入,儲存至string物件
  • 可以使用cout顯示string物件
  • 可以使用陣列標記符號([ ]),存取位在string物件中的某個字元
  • 可以自動處理使用儲存的大小

 

宣告

 string 名稱;

Ex:


#include &amp;amp;lt;iostream&amp;amp;gt;
#include &amp;amp;lt;string&amp;amp;gt;  //引入 &amp;amp;lt;string&amp;amp;gt; 標頭檔 
using namespace std;

int main(){

 string name;     //宣告名為name的string物件 
 
}&amp;amp;lt;span style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" data-mce-type="bookmark" class="mce_SELRES_start"&amp;amp;gt;&amp;amp;lt;/span&amp;amp;gt;
 
初始化
字串名稱=字串內容“;
 
C++11新增內容:
  • 可以對sting物件進行列表初始化
  • 可以省略“=”
                 (O) string c={“Cat”};
                 (O) string d {“Dog”};
Ex:
#include &lt;iostream&gt;
#include &lt;string&gt;  //引入 &lt;string&gt; 標頭檔 
using namespace std;

int main(){
 
 string name={"Tony0612"};  //對物件name1進行列表初始化 
 string name {"Janet"};     //可以省略"=" 
 
 cout &lt;&lt; name1 &lt;&lt; endl;     //印出物件name1內容 
 cout &lt;&lt; name2 &lt;&lt; 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();
  
}

有疑問? 留個言吧!

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料