資料結構學習筆記001-String類(C++)
阿新 • • 發佈:2021-10-21
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() // 返回配置器
- .......