1. 程式人生 > 其它 >資料結構學習筆記001-String類(C++)

資料結構學習筆記001-String類(C++)

string類包含於標頭檔案string中,使用string型別前需要新增標頭檔案string並使用名為std的名稱空間。

#include<string>
using namespace std;

string型別隱藏了字串的陣列性質。

  • 可以使用c風格字串初始化string物件。
  • 可以使用cin從鍵盤輸入到string物件中。
  • 可以使用cout來顯示string物件。
  • 可以使用陣列表示法來訪問string物件中的字元。
string a = "First";
string b;
cin >> b;
cout << a;
cout << a[2
];

關於string型別的初始化。

string在未被初始化時長度為0,且其會根據輸入的字串長度自行調整長度。

string First = {"The Break Bowl"};
string Second {"Hank's Fine Eats"};

string型別提供了拼接,賦值,附加,比較等操作。

string a = "go";
string b = "od";
string c = "good";
string d;
a == b;
d = c;
d = a + b;
a += b;

值得一提的是,C中同樣提供了附加和複製操作的函式,其存放在標頭檔案cstring中。

其中包含了複製字串的函式strcpy(陣列名a,陣列名b)意味著將b複製到a,附加函式strcat(陣列a,陣列b)意味著將b附加在a末尾。

#include<string>
#include<cstring>
char a[] = {"go"};
char b[] = {"od"};
char c[2];
strcpy(c, strcat(a,b));

關於string類的函式。

  • =, s.assign() // 賦以新值
  • swap() // 交換兩個字串的內容
  • +=, s.append(), s.push_back() // 在尾部新增字元
  • s.insert() // 插入字元
  • s.erase() // 刪除字元
  • s.clear() // 刪除全部字元
  • s.replace() // 替換字元
  • + // 串聯字串
  • ==,!=,<,<=,>,>=,compare() // 比較字串
  • size(),length() // 返回字元數量
  • max_size() // 返回字元的可能最大個數
  • s.empty() // 判斷字串是否為空
  • s.capacity() // 返回重新分配之前的字元容量
  • reserve() // 保留一定量記憶體以容納一定數量的字元
  • [ ], at() // 存取單一字元
  • >>,getline() // 從stream讀取某值
  • << // 將值寫入stream
  • copy() // 將值賦值為一個C_string
  • c_str() // 返回一個指向正規C字串(C_string)的指標 內容與本string串相同 有’\0’
  • data() // 將內容以字元陣列形式返回 無’\0’
  • s.substr() // 返回某個子字串
  • begin() end() // 提供類似STL的迭代器支援
  • rbegin() rend() // 逆向迭代器
  • get_allocator() // 返回配置器
  • .......