+ 和 +=:連線字串
=:字串賦值
>、>=、< 和 <=:字串比較(例如a < b, aa < ab)
==、!=:比較字串
<<、>>:輸出、輸入字串
注意:使用過載的運算子 + 時,必須保證前兩個運算元至少有乙個為 string 型別。例如,下面的寫法是不合法的:
#include #include int main()
string str;
cin >> str;
str.find("ab");//返回字串 ab 在 str 的位置
str.find("ab", 2);//在 str[2]~str[n-1] 範圍內查詢並返回字串 ab 在 str 的位置
str.rfind("ab", 2);//在 str[0]~str[2] 範圍內查詢並返回字串 ab 在 str 的位置
//first 系列函式
//last 系列函式
//以上函式如果沒有找到,均返回string::npos
cout << string::npos;
str.substr(3); //返回 [3] 及以後的子串
str.substr(2, 4); //返回 str[2]~str[2+(4-1)] 子串(即從[2]開始4個字元組成的字串)
str.replace(2, 4, "sz");//返回把 [2]~[2+(4-1)] 的內容替換為 "sz" 後的新字串
str.replace(2, 4, "abcd", 3);//返回把 [2]~[2+(4-1)] 的內容替換為 "abcd" 的前3個字元後的新字串
str.insert(2, "sz");//從 [2] 位置開始新增字串 "sz",並返回形成的新字串
str.insert(2, "abcd", 3);//從 [2] 位置開始新增字串 "abcd" 的前 3 個字元,並返回形成的新字串
str.insert(2, "abcd", 1, 3);//從 [2] 位置開始新增字串 "abcd" 的前 [2]~[2+(3-1)] 個字元,並返回形成的新字串
除了用過載的+
操作符,還可以使用函式來完成。
str.push_back('a');//在 str 末尾新增字元'a'
str.erase(3);//刪除 [3] 及以後的字元,並返回新字串
str.erase(3, 5);//刪除從 [3] 開始的 5 個字元,並返回新字串
str1.swap(str2);//把 str1 與 str2 交換
str.size();//返回字串長度
str.length();//返回字串長度
str.empty();//檢查 str 是否為空,為空返回 1,否則返回 0
str[n];//訪問 str 第 n + 1 個字元
str.at(n);//訪問 str 第 n + 1 個字元(如果溢位會丟擲異常)
int str_replace(string &str, const string &src, const string &dest)
return counter;
}
方法和上面相似,內部使用erase()
完成。**:
int str_erase(string &str, const string src)
return counter;
}
int str_wash(string &str, const string src)
return counter;
}
C string 字串函式詳解
december 8,2012 程式設計指南 和 連線字串 字串賦值 和 字串比較 例如a b,aa ab 比較字串 輸出 輸入字串 注意 使用過載的運算子 時,必須保證前兩個運算元至少有乙個為 string 型別。例如,下面的寫法是不合法的 include include intmain stri...
C string 字串函式詳解
和 連線字串 字串賦值 和 字串比較 例如a b,aa ab 比較字串 輸出 輸入字串 注意 使用過載的運算子 時,必須保證前兩個運算元至少有乙個為 string 型別。例如,下面的寫法是不合法的 include include int main string str cin str str.fin...
C string 字串函式
december 8,2012 程式設計指南 和 連線字串 字串賦值 和 字串比較 例如a b,aa ab 比較字串 輸出 輸入字串 注意 使用過載的運算子 時,必須保證前兩個運算元至少有乙個為 string 型別。例如,下面的寫法是不合法的 include include intmain stri...