1. 程式人生 > >string物件的初始化和常用操作

string物件的初始化和常用操作

1、初始化string物件的方式

 1 #include <iostream>
 2 #include <string>
 3 
 4 using std::cout;
 5 using std::endl;
 6 using std::string;
 7 void output(string desc, string s){
 8     cout << desc << ":" << s << endl;
 9 }
10 int main()
11 {
12     string s1; // 預設初始化,s1是一個空串
13 string s2(s1); // s2是s1的副本 14 string s3 = s1; // 等價於s3(s1) 15 string s4("value"); // s4是字面值"value"的副本,除了字面值最後的那個空字元外 16 string s5 = "value"; // 等價於s5("value") 17 string s6(10, 'c'); // 把s6初始化成由連續10個字元c組成的串 18 output("s1", s1); 19 output("s2", s2); 20 output("s3", s3); 21 output("
s4", s4); 22 output("s5", s5); 23 output("s6", s6); 24 return 0; 25 }

輸出:

 2、string的常用操作

1)is>>s:從is中讀取字串賦給s,字串以空白分隔,返回is。

  在執行讀取操作時,string物件會自動忽略開頭的空白(即空格符、換行符、製表符等)並從第一個真正的字元開始讀起,知道遇到下一處空白為止。

 1 #include <iostream>
 2 #include <string>
 3 
 4 using std::cin;
5 using std::cout; 6 using std::endl; 7 using std::string; 8 int main() 9 { 10 string s; 11 cin >> s; 12 cout << "|" << s << "|" << endl; 13 return 0; 14 }

如果輸入是"         hello world!       ",那麼輸出是:

2)getline(is,s):從is中讀取一行賦給s,返回is。

   函式從給定的輸入流中讀入內容,直到遇到換行符為止(注意換行符也被讀進來了),然後把所讀的內容存入到那個string物件中去(注意不存換行符)。getline只要一遇到換行符就結束讀取操作並返回結果,哪怕輸入的一開始就是換行符也是如此。如果輸入一開始就是換行符,那麼所得的結果就是個空string。

 1 #include <iostream>
 2 #include <string>
 3 
 4 using std::cin;
 5 using std::cout;
 6 using std::endl;
 7 using std::string;
 8 int main()
 9 {
10     string s;
11     while (getline(cin,s))
12     {
13         cout << "|" << s << "|" << endl;
14     }
15     return 0;
16 }

如果輸入是"         hello world!       ",那麼輸出是:

3)s.empty():s為空返回true,否者返回false。

4)s.size():返回s中字元的個數。

  size()函式返回的是一個string::size_type型別的值,是一個無符號的值而且能夠存放下任何string物件的大小。

5)s[n]:返回s中第n個字元的引用,位置n從0計起。

6)s1+s2:返回s1和s2連線後的結果。

  兩個string物件相加得到一個新的string物件,其內容是把左側的運算物件和右側的運算物件串接而成。

  複合賦值運算子(+=)負責把右側string物件的內容追加到左側string物件的後面。

  c++語言中的字串字面值並不是標準庫型別string的物件。標準庫允許把字元字面值和字串字面值轉換成string物件,所以在需要string物件的地方就可以使用這兩種字面值來代替,但是當把string物件和字元字面值及字串字面值混在一條語句中使用時,必須確保每個加法運算子(+)的兩側的運算物件至少有一個是string。

7)s1=s2:用s2的副本代替s1中原來的字元。

8)s1==s2:如果s1和s2中所含的字元完全一樣,則它們相等;string物件的相等性判斷對字母的大小寫敏感。

9)<,<=,>,>=:利用字元在字典序中的順序進行比較,且大小寫敏感。