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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++总结篇(3)String类

發(fā)布時間:2025/3/11 c/c++ 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++总结篇(3)String类 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

string是表示字符串的字符串類,該類的接口與常規(guī)容器的接口基本相同,再添加了一些專門用來操作string的常規(guī)操作。string在底層實際是:basic_string模板類的別名,typedef basic_string<char, char_traits, allocator> string。不能操作多字節(jié)或者變長字符的序列。 在使用string類時,必須包含#include頭文件以及using namespace std標(biāo)準(zhǔn)空間。

1.常見string類容量操作接口:

  • size():返回字符串的有效長度
  • size():length():返回字符串的有效長度,作用于size()相同
  • capacity(): 返回空間總大小
  • empty(): 檢測字符串釋放為空串,是返回true,否則返回false
  • clear(): 清空有效字符
  • resize(n):將有效字符的個數(shù)該成n個
  • 如例:

    void test(string &s) {cout << s.size() << endl; //字符串的有效長度cout << s.length() << endl;//字符串的有效長度cout << s.capacity() << endl;//空間的總大小cout << s.empty() << endl;//檢測字符串是否為空串,是則返回true,反之返回falsecout << s << endl;cout << endl;s.resize(3);//將字符串的有限個數(shù)改為3個cout << s.size() << endl;cout << s.length() << endl;cout << s.capacity() << endl;cout << s << endl;cout << endl;s.clear();//清空字符串cout << s.empty() << endl;cout << s << endl; }

    2.String類對象訪問及遍歷操作:

  • operator[]:返回pos位置的字符,const string類對象調(diào)用
  • begin+ end:begin獲取第一個字符的迭代器+ end獲取最后一個字符下一個位置的迭代器(從前往后打印)
  • rbegin + rend:begin獲取最后一個字符的迭代器 + end獲取第一個字符錢啊一個位置的迭代器(從后往前打印)
  • 如例:

    void test(string &s) {cout << s.operator[](0) << endl;//返回位置0處的字符string::iterator it = s.begin();//獲取第一個字符的迭代器while (it != s.end())//直到與最后一個字符下一位置的迭代器相等則跳出循環(huán){cout << *it << endl;it++;}string::reverse_iterator rit = s.rbegin(); //可抽象理解為獲取第一個字符的迭代器while (rit != s.rend())//可抽象理解為直到與最后一個字符下一位置的迭代器相等則跳出循環(huán){cout << *rit << endl;rit++;}}

    3.String類對象修改操作:

  • push_back(‘c’): 在字符串后尾插字符c
  • append(“world”): 在字符串后追加一個字符串
  • operator+=(str): 在字符串后追加字符串str c_str(): 返回C格式字符串
  • find(‘c’,pos):從字符串pos位置開始往后找字符c,返回該字符在字符串中的位置
  • rfind(‘c’,pos):從字符串pos位置開始往前找字符c,返回該字符在字符串中的位置
  • substr(pos,n):在str中從pos位置開始,截取n個字符,然后將其返回
  • 如例:

    void test(string &s) {s.push_back('c');//尾插一個字符'c'cout << s << endl;s.pop_back();//尾刪一個字符cout << s << endl;s.append(" world");//在字符串后追加一個字符串" world"cout << s << endl;char str[] = "!!!";s.operator+=(str);//在字符串后追加一個字符串strcout << s.c_str()<<endl;//以c格式打印字符串cout << s.find('o', 5)<<endl;//從位置5處向后查找字符'o'并返回其位置cout << s.rfind('o', 5) << endl;//從位置5處向前查找字符'o'并返回其位置cout << s.substr(0, 5)<<endl;//截取位置0到位置5處的字符串 }

    4.string模擬實現(xiàn)

    class String { public:String(const char *str){if (str == nullptr){return;}_str = new char[strlen(str) + 1];strcpy(_str, str);}String(const String &str):_str(new char[strlen(str._str)+1]){strcpy(_str, str._str);}~String(){if (_str){delete[] _str;_str = nullptr;}} private:char *_str; };

    總結(jié)

    以上是生活随笔為你收集整理的C++总结篇(3)String类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 国产精品成人电影在线观看 | 久久作爱视频 | 波多野结衣高清电影 | 人人爱人人澡 | 国产高潮国产高潮久久久91 | 青娱乐在线视频观看 | 一区二区在线视频 | 超碰超碰超碰超碰超碰 | 人妻一区二区三 | 夜夜艹天天干 | 免费看a级黄色片 | 成人免费黄色大片 | 日韩在线播放一区二区 | 亚洲专区欧美专区 | 黄色激情在线 | 波多野结衣视频网址 | 北条麻妃av在线播放 | 爱爱视频网址 | av片免费看 | 国产草草草| 精精国产xxxx视频在线 | 日韩在线观看一区二区 | 国产主播一区二区 | 天天爱夜夜爽 | 国产片久久| 黄色一区二区视频 | 亚洲国产视频在线观看 | 日韩三级久久 | www.青青操| 国产精品三级电影 | 麻豆爱爱| 午夜精品免费视频 | 亚洲性免费 | 久久精品国产亚洲AV无码麻豆 | 欧美丰满老熟妇xxxxx性 | 成人高清网站 | 国产在线97| 成人18视频免费69 | 欧美激情图片 | 色综合加勒比 | 亚洲一区二区三 | 国产一区二区三区四 | 丰满人妻熟女aⅴ一区 | 国产99久久久久 | 一区二区三区精品在线观看 | 91视频国产一区 | 六月婷婷在线 | 7色av| 亚洲av乱码久久精品蜜桃 | 久久天堂视频 | 欧美黄色a级 | 香蕉av一区 | 天堂av网址 | 欧美 日韩 国产 成人 | 日本视频在线观看免费 | 日韩久久综合 | 久久精品久久久精品美女 | 久久久久久久国产视频 | 朝桐光av在线 | 风流少妇 | 91免费 看片| 国产伦理在线观看 | 久久aaaa片一区二区 | 性猛交ⅹxxx富婆video | 十大黄台在线观看 | a级片在线视频 | 一区二区高清在线观看 | 国产免费福利视频 | 精品69| 插插插操操操 | 精品国产乱码久久久久久1区2区 | 亚洲精品视频观看 | 一区二区黄色 | 97在线影院| 蜜臀va| 色图视频 | 欧美激情精品久久久久 | 国产毛片91 | 中国黄色网页 | 国产高清视频在线观看 | 亚洲高潮| 天天爽夜夜 | 丁香婷婷综合网 | 又黄又色又爽的视频 | 另类专区亚洲 | 色人阁网站| 操操操操操操操 | 午夜精品久久久久久久久 | 午夜免费在线 | 成人自拍视频 | 久热免费在线视频 | 国产草草浮力影院 | 色玖玖 | 国产69精品一区二区 | 高潮又黄又刺激 | 久久久高清免费视频 | 88久久精品无码一区二区毛片 | 国产视频在线观看视频 | 91精品国产视频 |