(注:本文承接《C++:string类(1)》的内容)
一.string类的常用接口
1.string类对象的修改操作
1.1字符串追加
示例代码如下:
以上代码演示 C++ string 三类追加操作: += 灵活拼接字符串/字符, push_back 专一追加单个字符, append 针对性扩展字符串 。通过 test01 函数里的 s1 s2 s3 实例,直观展现不同接口的用法差异,看输出就能秒懂它们在字符串扩展时的具体表现。
1.2字符串的增删改
replace 函数常用场景是按位置和长度精准替换字符串部分内容,比如格式化拼接字符串、数据清洗等场景中修改特定片段文本,语法里 pos 是起始替换位置,len 是要替换的原字符串长度,str 是用于替换的新字符串内容 。
示例代码如下:
find和substr用于分解网址的函数如下:
二.string类的非成员函数
来看一道题
1. getline 作用:
读取一行输入(含空格),把整行内容存入 string 对象 s ,确保获取完整句子 。
2. rfind 作用:
从 s 末尾往前找空格,返回最后一个空格位置;无空格则返回 string::npos ,以此确定最后一个单词的起始位置,进而计算其长度 。
那为什么不用cin呢?
我们来看一下,以下对比
三者核心差异:
- 读取逻辑: getline 按行读(含空格), cin 遇空白停(空格作分隔), scanf 按格式符读( %s 遇空白停 )
- 适用场景: getline 取整行文本; cin 做C++多类型便捷输入; scanf 用于C语言格式控制输入
- 返回与处理: getline 返流对象/设错误态, cin 返自身/链式操作, scanf 返成功项数/ EOF ,错误处理和类型适配各有特点 。