<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      西大的陽光下有大洋的影子

      我不上網了

      c++STL系列之String

      開頭總結:

      C++中STL的概念總結:

      1、容器 

      2、迭代器

      STL中所有的不同庫都是容器的概念體現,基本操作都是基于迭代器的操作。

      一、string

      string 其實相當于一個保存字符的序列容器,因此除了有字符串的一些常用操作以外,還有包含了所有的序列容器的操作。字符串的常用操作包括:增加、刪除、修改、查找比較、鏈接、輸入、輸出等。下圖是字符串在內存中的存儲方式,所以對于string類型,依舊可以使用下標來操作。

      二、string常用方法

      //頭文件
      #include<string>
      
      //聲明
      string str = “abc”;
      
      //str的長度,結果為:3
      str.length();
      str.size();
      
      //得到str的頭字符,輸出為:a
      str.front();
      //得到str的尾字符,輸出為:c
      str.back();
      
      //得到str的第i位置的字符
      str.at(i);
      str[i];//兩種方法都可以,第一種方法在字符不存在時不會報錯

      三、高階用法

      字符串的拼接:

          string str = "abc";
          //str添加,該方法只能添加一個字符
          str.push_back('d');//str = "abcd"
          //str拼接也可以使用 + 操作符
          string str1 = "ef";
          str += str1;//str = "abcdef"
          //str拼接也可以使用 append() 函數,將str1添加到str后
          str.append(str1);
          //append() 函數,也可以指定將str2指定部分添加到str后
          string str2 = "qwertyu";
          //將str2的下標1-4位置添加到str后
          str.append(str2,1,4);//str = "abcdefwert",str = "abcdef"

      切割字符串:

          //切割字符串
          string str11 = "abcdefg";
          //,第一個參數為位置,第二個參數為長度,保留位置0后面的三個字符
          str11 = str11.substr(0,3);

      翻轉字符串:

          string s1 = "abc";
          //翻轉字符串
          reverse(s1.begin(),s1.end());//開始位置,結束位置

      字符串的替換:

          string str2 = "qwertyu";
          //將str2替換為str
          str.assign(str2);//此時str的值為str2的字符串
          str.assign(str2,4,2);//將str2的下標4后的2個字符替換str

      字符串的插入:

          //插入 str.insert(pos,value)
          str.insert(1,"sss");//在str下標1的位置插入“sss"

      字符串的刪除:

          //erase()刪除操作
          string str ("This is an example phrase.");
          string::iterator it;
       
          // 第(1)種用法
          str.erase (10,8);
          cout << str << endl;        // "This is an phrase."
       
          // 第(2)種用法,刪除一個字符
          it=str.begin()+9;
          str.erase (it);
          cout << str << endl;        // "This is a phrase."
       
          // 第(3)種用法,刪除區間
          str.erase (str.begin()+5, str.end()-7);
          cout << str << endl;        // "This phrase."

      字符串的查找:string中find()返回值是字母在母串中的位置(下標記錄),如果沒有找到,那么會返回一個特別的標記npos。

          //find()查找
          string str = "tsssy";
          int p = str.find('s',0);//第二個參數為起始查找位置,省略默認從0開始
          string::size_type po = str.find("s");//p和pp都為記錄查找位置
          if (p != str.npos)
          {
              cout<<p<<endl;//如果找到則返回索引位置,結果為:1
          } else
              cout<<"沒有找到"<<endl;
          //子串出現在母串中的首次出現的位置
          int p_first = str.find_first_of("s");
          cout<<p_first<<endl;//結果為:1
          //子串出現在母串中的末次出現的位置
          int p_last = str.find_last_of("s");
          cout<<p_last<<endl;//結果為:3
      
          //查找子串與母串均不相同的首個位置
          int p_first_no = str.find_first_not_of("tf");
          cout<<p_first_no<<endl;//結果為:1
          //查找子串與母串均不相同的末個位置
          int p_last_no = str.find_last_not_of("ey");
          cout<<p_last_no<<endl;//結果為:3

      字符串的比較compare():

          //比較
          string a = "asdf";
          string b = "qwer";
          string c = "sdf";
      //    1.直接比較兩個字符串,返回0則表示兩個字符串相同
          int number = a.compare(b); //結果為 number=-1;
          int number1 = b.compare(b); //結果為 number=0;
          int number2 = a.compare("asdf"); //結果為 number=0;
      
      //    2.一個字符串的子串與另一個字符串比較
          int number3 = a.compare(1,3,c); //用a[1:3]和c相比,結果為 number=0;
      //字符串b從下標為1的字符開始的三個字符與字符串d比較,顯然都是fgh,所以相等,返回0
          int number4 = b.compare(1,3,c); //結果為 number=1;
          int number5 = a.compare(1,3,"sdf"); //結果為 number=0;
      
      //    3.一個字符串的子串與另一個字符串的子串比較
          int number6 = a.compare(1,3,c,0,2); //結果為 number= 0;
      //字符串a從下標為1的地方開始的后3個字符是sdf,字符串c從下標為0的字符開始的后三個字符是sdf,所以相等

      str.c_str():

      c_str()函數返回一個指向正規C字符串的指針常量, 內容與本string串相同.(其實它指向的是string對象內部真正的char緩沖區),所以返回const,以防止用戶的修改。
      這是為了與c語言兼容,在c語言中沒有string類型,故必須通過string類對象的成員函數c_str()把string 對象轉換成c中的字符串樣式。

       

      posted on 2020-11-25 16:48  我不上網了  閱讀(148)  評論(0)    收藏  舉報

      導航

      主站蜘蛛池模板: 熟妇人妻久久春色视频网| 中文字幕精品亚洲人成在线| 亚洲国产精品综合色在线| 日韩精品一区二区三区vr| 国产99视频精品免费视频6| 人妻激情乱人伦视频| 黄色三级亚洲男人的天堂| 国产亚洲精品成人aa片新蒲金| 日韩精品自拍偷拍一区二区 | 日本极品少妇videossexhd| 亚洲国产中文字幕在线视频综合| av激情亚洲男人的天堂| 伊人色综合一区二区三区影院视频 | 国产精品久久久久久久久软件| 国产亚洲精品AA片在线播放天| 99久久精品国产一区二区暴力| 亚洲成AV人片在线观高清| 五月花成人网| 国产成人午夜福利在线观看| 国产乱子伦视频在线播放| 上司人妻互换中文字幕| 国产av黄色一区二区三区| 成人福利一区二区视频在线| 永久不封国产av毛片| 亚洲国产美女精品久久久| 猫咪www免费人成网站| 亚洲成av人最新无码不卡短片| 一本一道av中文字幕无码| 罗平县| 一区二区三区四区黄色片| 91精品国产午夜福利| 国产明星精品无码AV换脸| 亚洲综合无码一区二区三区不卡| 亚洲AV成人无码久久精品四虎| 欧美xxxxhd高清| 国产网红女主播精品视频| 久久涩综合一区二区三区| 午夜福利片1000无码免费| 又爽又黄又无遮挡的激情视频| 狠狠色噜噜狼狼狼色综合久| 人妻少妇精品无码专区二区|