C++深入理解(13)------string類(讀書筆記)

1.string類:
        一直都在用string類,但是卻沒系統的瞭解,下面就係統介紹一下。
        string的構造函數,目前存在7中,其中後兩種是C++11新增的。如下圖:

       下面用代碼分別舉例:

#include <iostream>
#include <string>

using namespace std;

int main()
{
	string One("Littery Winner!");				// 將One賦值爲Littery Winner!
	string Two(20, 'S');						// 將Two賦值爲20個S
	string Three(One);							// 複製構造函數,複製One
	string Four;								// 定義一個空字符串
	char alls[] = "All's well that ends well";	
	string Five(alls, 20);						// 取alls的前20個字節
	string Six(alls + 6, alls + 10);			// 取[6,10)的字符,不包括10
	string Six2(&alls[6], &alls[10]);			// 取[6,10)的字符,不包括10
	string Seven(Four, 7, 16);					// 取Four的第7個字符開始,複製16個字符到Seven

	//C++11
	string (string&& str);						// 叫做移動構造函數,將string賦值爲str的副本
	string Nine = { 'A', 'B', 'C', 'D', 'E' };	// 類似於數組賦值方式
}

2. string 的最大允許長度爲 string::npos。通常是最大的unsigned int值。
3. 使用字符串的其他方式:可以比較兩個字符串<,==,>,可以獲取字符串的長度,size()和length()。兩者功能相同,length是較早版本的,size是STL兼容添加的。
4.string的find方法相關
  a.size_type find(const string& str,size_type pos=0) const :用於從位置pos開始查找str,如果找到返回出現str第一個字符的索引位置,否則返回string::npos。
  b.size_type find(const char* s,size_type pos=0) const:也是查找s,只不過是char*數組
  c.size_type find(const char* s,size_type_pos=0,size_type n):查找s的前n個字符組成的子字符串,找到返回第一個字符的索引,否則返回string::npos;
  d.size_type find(const ch,size_type pos =0) const:在pos位置查找字符ch,返回值與上邊相同
還有rfind:用於超找字符串或者字符最後一次出現的位置,
       find_first_of:用於查找參數中任何一個字符首次出現的位置,如原字符串爲“cobra”,int where = str.find_first_of("hark");返回3,hark是大集合,cobra是子集合,用cobra去hark中挨個比對,位置爲3
5除此之外,還有替換assign,刪除erase,複製copy,交換swap,比較compare,等等

 

 

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