日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

c++ string 字符串

發布時間:2025/3/21 c/c++ 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++ string 字符串 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載? ?http://www.renfei.org/blog/introduction-to-cpp-string.html

?

運算符重載

  • + 和 +=:連接字符串
  • =:字符串賦值
  • >、>=、< 和 <=:字符串比較(例如a < b, aa < ab)
  • ==、!=:比較字符串
  • <<、>>:輸出、輸入字符串
  • 注意:使用重載的運算符 + 時,必須保證前兩個操作數至少有一個為 string 類型。例如,下面的寫法是不合法的:

    #include <iostream> #include <string> int main() {string str = "cat";cout << "apple" + "boy" + str; // illegal!return 0; }

    ?

    查找

    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 系列函數 str.find_first_of("apple");//返回 apple 中任何一個字符首次在 str 中出現的位置 str.find_first_of("apple", 2);//返回 apple 中任何一個字符首次在 str[2]~str[n-1] 范圍中出現的位置 str.find_first_not_of("apple");//返回除 apple 以外的任何一個字符在 str 中首次出現的位置 str.find_first_not_of("apple", 2);//返回除 apple 以外的任何一個字符在 str[2]~str[n-1] 范圍中首次出現的位置//last 系列函數 str.find_last_of("apple");//返回 apple 中任何一個字符最后一次在 str 中出現的位置 str.find_last_of("apple", 2);//返回 apple 中任何一個字符最后一次在 str[0]~str[2] 范圍中出現的位置 str.find_last_not_of("apple");//返回除 apple 以外的任何一個字符在 str 中最后一次出現的位置 str.find_last_not_of("apple", 2);//返回除 apple 以外的任何一個字符在 str[0]~str[2] 范圍中最后一次出現的位置//以上函數如果沒有找到,均返回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.append("abc");//在 str 末尾添加字符串"abc"

    ?

    刪除

    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 個字符(如果溢出會拋出異常)

    ?

    實例

    查找給定字符串并把相應子串替換為另一給定字符串

    string 并沒有提供這樣的函數,所以我們自己來實現。由于給定字符串可能出現多次,所以需要用到?find()?成員函數的第二個參數,每次查找之后,從找到位置往后繼續搜索。直接看代碼(這個函數返回替換的次數,如果返回值是 0 說明沒有替換):

    int str_replace(string &str, const string &src, const string &dest) {int counter = 0;string::size_type pos = 0;while ((pos = str.find(src, pos)) != string::npos) {str.replace(pos, src.size(), dest);++counter;pos += dest.size();}return counter; }

    ?

    從給定字符串中刪除一給定字串

    方法和上面相似,內部使用?erase()?完成。代碼:

    int str_erase(string &str, const string src) {int counter = 0;string::size_type pos = 0;while ((pos = str.find(src, pos)) != string::npos) {str.erase(pos, src.size());++counter;}return counter; }

    ?

    給定一字符串和一字符集,從字符串剔除字符集中的任意字符

    int str_wash(string &str, const string src) {int counter = 0;string::size_type pos = 0;while ((pos = str.find_first_of(src, pos)) != string::npos) {str.erase(pos, 1);++counter;}return counter; }

    ?

    轉換小寫可以用tolower。

    轉載于:https://www.cnblogs.com/wushengyang/p/10677775.html

    總結

    以上是生活随笔為你收集整理的c++ string 字符串的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。