C++ STL String用法

1|0string

在 C 语言中,提供了字符串的操作,但只能通过字符数组的方式来实现字符串。

string 则是一个简单的类,使用简单,在 OI 竞赛中被广泛使用。

相较于其他 STL 容器,string 的常数可以算是非常优秀的,基本与字符数组不相上下。

1|0string常用操作
  • 输出

    string s = "123"; printf("%s", s.c_str()); cout << s;
  • 获取长度

    • s.size()
    • s.length()

    复杂度为常数。

    printf("s的长度为 %d", s.size()); printf("s的长度为 %d", s.length());
  • 拼接

    直接使用+进行拼接。

    复杂度为O(n)

    string s1 = "ke"; s1 += "daya"; cout << s1 << endl;//输出kedaya
  • 截取子串

    • substr(pos, len) :返回从 pos 位置开始截取len 个字符组成的字符串(如果从 pos 开始的后缀长度不足 len 则截取到末尾)。
    • substr(pos) :返回从 pos 位置开始截取到末尾的字符串。

    复杂度为O(n)

    string s = "kedaya"; cout << s.substr(2, 2) << endl;//输出da cout << s.substr(4, 10) << endl;//输出ya cout << s.substr(2) << endl;//输出daya
  • 插入/删除字符串

    • insert(index,str):表示在 index 处插入字符串 str
    • erase(index,count) :函数将字符串 index 位置开始(含)的 count 个字符删除。
    • erase(index):删去 index 位置及以后的所有字符。

    复杂度为O(n)

    string s = "AK NOIP", t = " IOI"; s.erase(6, 1); cout << s << endl;//输出AK NOI s.erase(2); cout << s << endl;//输出AK s.insert(2, t); cout << s << endl;//输出AK IOI
  • 替换字符

    • replace(pos,count,str):从 pos 位置开始 count 个字符的子串替换为 str
    • replace(first,last,str):以 first 开始(含)、last 结束(不含)的子串替换为 str,其中 firstlast 均为迭代器

    复杂度为O(n)

    string s = "ABI"; s.replace(0, 2, "NO"); cout << s << endl;//输出NOI s.replace(s.begin(), s.end() - 1, "I will ak NO"); cout << s << endl;//输出I will ak NOI
  • 寻找字符串

    find(str),返回字符串str第一次出现的位置,如果没有出现,则返回 string::npos

    复杂度不及KMP算法。

    string s = "ke da ya da ya", t = "da", u = "noi"; cout << s.find(t) << endl;//输出3 if(s.find(u) == string::npos) { cout << "No" << endl;//输出No }
1|0模板题目

洛谷P5733自动修正

洛谷P1308统计单词数


__EOF__

本文作者可爱的卤蛋
本文链接https://www.cnblogs.com/acwhr/p/17839402.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   可爱的卤蛋  阅读(46)  评论(2编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示