【C++】string类(常用接口)

简介: 【C++】string类(常用接口)

修改操作

push_back



push_back只能插入一个字符,如果想要插入字符串,得用append。


append



这里简单介绍几个,常用的是第一个,需要使用时,可去cplusplus网站查阅。


operator+=




实际中,我们更喜欢用+=,使用起来更方便。


assign



assign的作用就是从前面开始覆盖。


insert




insert就是插入,不过插入时会进行数据的挪动,尽量少使用,否则效率会变低。


erase




pos有个缺省值,即默认从0开始,npos就是整形的最大值,如果len大于剩下的长度,就是全部删除。如果不给任何参数,就是全部删除。 上面是从下标为2开始,删除3个字符。不过尽量少用,因为也会降低效率。


replace




上面是把从第5个位置开始的,前一个和前三个位置用来替换字符串。位置不够时会挪动,位置够的地方就会替换。


如果想把空格部分都改成%20,可以和find结合使用:




npos是整形的最大值,正常来说字符串是没有这个下标位置的,通常用来表示没有找到匹配项。上面的erase、replace、insert都尽可能少用,因为效率不高。



还可以用范围for的方法进行替换。


c_str





在C++中,string对象后面会自动加上'\0'来兼容C语言,c_str的作用是返回C格式的字符串。如上图,filename是string对象,fopen的操作数是字符类型的,所以就要用c_str进行转换。


find




substr的作用是在str中从pos位置开始,截取n个字符,然后将其返回。因为cpp刚好是最后的字符串,又有缺省值,可以直接不写。 或者size-pos位置,就是要截取的个数。




如果想找到最后一个后缀,可以用rfind。 rfind的作用是从字符串pos位置开始往前找字符,返回该字符在字符串中的位置。



上面是find和substr的使用场景。这套方法对其他网址的分割也是通用的。


string类非成员函数

relational operators




relational operators的作用是比较大小。


operator+




operator+的使用很简单,重载这么多个是因为可以让char* 和string的可以混着用。


getline


字符串最后一个单词的长度_牛客题霸_牛客网


上方是牛客的一道题,通过这道题介绍getline。




cin和scanf一样,遇到空格或者换行都会进行区分,否则同一行上的多个字符串就无法区分了。此时T在缓冲区里面。



getline的作用就是获取一行字符串。


to_string、stod



to_string是把数值转换成字符串,stod是把字符串转换成双精度浮点数。上面还有各种字符串和数值相互转换的函数。


目录
相关文章
|
4天前
|
Java 编译器 ice
【Java开发指南 | 第十五篇】Java Character 类、String 类
【Java开发指南 | 第十五篇】Java Character 类、String 类
23 1
|
2天前
|
存储 算法 搜索推荐
C++|STL简介-string-vector基础运用
C++|STL简介-string-vector基础运用
|
2天前
|
测试技术 C++
C++|运算符重载(3)|日期类的计算
C++|运算符重载(3)|日期类的计算
|
3天前
|
C语言 C++ 容器
C++ string类
C++ string类
9 0
|
4天前
|
C++ Linux
|
4天前
|
设计模式 安全 算法
【C++入门到精通】特殊类的设计 | 单例模式 [ C++入门 ]
【C++入门到精通】特殊类的设计 | 单例模式 [ C++入门 ]
18 0
|
4天前
|
编译器 C++
【C++】继续学习 string类 吧
首先不得不说的是由于历史原因,string的接口多达130多个,简直冗杂… 所以学习过程中,我们只需要选取常用的,好用的来进行使用即可(有种垃圾堆里翻美食的感觉)
9 1
|
4天前
|
算法 安全 程序员
【C++】STL学习之旅——初识STL,认识string类
现在我正式开始学习STL,这让我期待好久了,一想到不用手撕链表,手搓堆栈,心里非常爽
16 0
|
4天前
|
存储 安全 测试技术
【C++】string学习 — 手搓string类项目
C++ 的 string 类是 C++ 标准库中提供的一个用于处理字符串的类。它在 C++ 的历史中扮演了重要的角色,为字符串处理提供了更加方便、高效的方法。
18 0
【C++】string学习 — 手搓string类项目