淺談C++標準庫類型string

對於string的定義不必過於糾結,可以將其理解成一種比較靈活的字符串類型。

下面主要對定義,初始化和操作string對象作一個簡單總結。

一.使用string類型的準備

#include <string>
using namespace std;  //或者 using std::string;

當然,要使用C++實現基本的輸入輸出操作,#include<iostream>也是不可少的。

二.定義和初始化string對象

下面給出了常用的幾種方式:

	string s1;                     //默認初始化,s1爲空串
	string s2="Hello World";       //s2的內容是"Hello World"
	string s3(5,'A');              //s3的內容是5個'A'

初始化的過程中也可以使用已經定義的string對象:

	string s4 = "Nice to meet you!"; //s4的內容是"Nice to meet you!"
	string s5(s4, 5);  //s5的內容是s4的第5個字符之後的內容(s4的前5個字符被無視)
	string s6(s4, 8, 4); //s6的內容是是s4的第8個字符之後的4個字符(注:空格也算作字符)

完整代碼及運行結果:



注:如果只是想定義一個string對象但不初始化,而採用輸入的方式將輸入內容讀取到定義的對象中,一定要記住:

string對象會自動忽略輸入開頭和結尾的空格,也就是說真正讀取的內容從第一個真正的字符開始,直到遇到下一處空白結束

三.部分常用的簡單操作

1.比較(兩個string對象s1和s2)

原則:a<b<...<z或A<B<...<Z(注:同一字母的大小寫爲兩種字符,大小比較可參考ASCII碼值)

①:s1與s2在某些位置上不一致時,結果爲第一對不同字符相比較的結果。

②:s1與s2長度不同,且從較短串的第一個字符到最後都與較長串對應位置的字符相等,則較短串小於較長串。

2.相加

例如s1='str' s2='ing' s3=s1+s2 s3的內容則爲“string”。

3.對string對象中的每個字符進行處理

C++11提供一種特殊的語句:範圍for語句

eg:使用範圍for語句輸出一個string對象的每個字符

	string s1("abcdefg");
	for (auto c : s1)         //對於s1中的每個字符
		cout << c << endl;
注:部分較老的編譯器可能無法運行。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章