標準庫型別 string 表示可變長的字串行
#include
using
std::string;
直接初始化:使用括號
拷貝初始化:使用等號
// 直接初始化
string s1; // 預設初始化,空串
string s2(s1) // s2是s1的副本
string s3("value")
string s4(n, 'c') // 重複 n 個 c
// 拷貝初始化
string 型別的 size() 和下標的資料型別是size_type,是一種無符號整型數。不可與有符號型別混用
// 推導變數另外型別
string line("***");
// 法一
auto len = line.size();
// 法二
decltype(line.size()) len = line.size();
讀取:string 物件會自動忽略開頭的空白(空格符、換行符、製表符)從第乙個非空字元讀取直到遇見下一處空白為止。
輸出:與標準的輸出一樣
// 迴圈讀取
string word;
while(cin >> word)
cout
<< word << endl;
//迴圈讀取一行
string line;
while(getline(cin, line))
cout
<< line << endl;
string 物件比較:
string 物件相加:
for 語句訪問 string 物件中的字元:
// declaration 變數是 expression 基礎元素
for(declaration: expression)
statement
// 迴圈列印字元
string str("***")
for(auto c : str)
cout
<< c << endl;
// 使用引用改變 string物件的字元
string str("***")
for(auto &c : str)
c = toupper(c);
下標訪問:下標從 0 開始,小於 size()
// 將第乙個單詞改為大寫形式
string s("***x")
for (decltype(s.size()) index = 0; index != s.size() && !isspace(s[index]); ++index)
s[index] = toupper(s[index]);
// 擷取s中從pos開始(包括0)的n個字元的子串,並返回
s.substr(pos, n)
// 擷取s中從pos開始(包括0)到末尾的所有字元的子串,並返回
s.substr(pos)
// 用s1替換s中從pos開始(包括0)的n個字元的子串
s.replace(pos, n, s1)
// 查詢s中第一次出現s1的位置,並返回(包括0)
s.find(s1)
// 查詢s中最後次出現s1的位置,並返回(包括0)
s.rfind(s1)
// 查詢在s1中任意乙個字元在s中第一次出現的位置,並返回(包括0)
s.find_first_of(s1)
// 查詢在s1中任意乙個字元在s中最後一次出現的位置,並返回(包括0)
s.find_last_of(s1)
// 查詢s中第乙個不屬於s1中的字元的位置,並返回(包括0)
s.fin_first_not_of(s1)
// 查詢s中最後乙個不屬於s1中的字元的位置,並返回(包括0)
s.fin_last_not_of(s1)
string標準庫型別 C
c 中string的學習體會 string 1 不允許把兩個字串字面值連線起來,乙個string物件 字串字面值返回的是string物件.string size type只是string裡方便移植性的定義的一種型別 2 cout include using namespace std int mai...
C 標準庫string型別
c 組成 基本資料型別和抽象資料型別標準庫 只需知道抽象資料型別支援的操作而不需關心內部表示 命名空間兩種使用方法 using std name 和 using namespace std 標準庫string型別和字串字面值不是同一型別 具體區別?getline 函式 string line get...
C 標準庫string型別
標準庫的string型別 include include using namespace std 或者可以這樣 using std string using std cin using std cout int main 12.下標操作可用作左值 string str some string for...