当前位置: 首页 > news >正文

【C++初阶】第8课—标准模板库STL(string_2)

文章目录

  • 1. string类对象遍历操作
    • 1.1 标准库中的成员函数begin( )和end( )
    • 1.2 标准库中的成员函数rbegin( )和rend( )
    • 1.3 C++11引入的4个标准库中的成员函数
  • 2. string类对象的访问
    • 2.1 operator[ ]运算符重载访问字符串字符
    • 2.2 公有成员函数at访问字符
    • 2.3 公有成员函数back()和front()访问字符
  • 3. string类对象的修改操作
    • 3.1 运算符重载operator+=追加字符串/字符
    • 3.2 push_back尾插字符c
    • 3.3 append追加字符串
    • 3.4 尾删字符pop_back
    • 3.5 assign替换string类对象内容(全部替换)
    • 3.6 replace替换string类对象内容(部分替换)
    • 3.7 insert插入字符串
    • 3.8 返回值npos
    • 3.9 erase删除部分字符
    • 3.10 swap交换函数
  • 4 练习
    • 4.1 练习题:反转字母
    • 4.2 练习题:找字符串中第一个只出现一次的字符
    • 4.3 "整数"字符串相加

1. string类对象遍历操作

在这里插入图片描述


1.1 标准库中的成员函数begin( )和end( )

  • begin()和end()听起来就是访问字符串首尾的字符,不过end指向字符串末尾’\0’

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


1.2 标准库中的成员函数rbegin( )和rend( )

  • rbegin()和rend()用来逆序字符串再合适不过了

在这里插入图片描述


在这里插入图片描述


1.3 C++11引入的4个标准库中的成员函数

在这里插入图片描述


2. string类对象的访问

在这里插入图片描述


2.1 operator[ ]运算符重载访问字符串字符

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


2.2 公有成员函数at访问字符

在这里插入图片描述


在这里插入图片描述


  • at和运算符[ ]访问字符的区别是:运算符[ ]下标如果越界,编译器直接断言报错,终止程序运行;at访问字符时,如果下标越界,那么它自动捕获异常,但它不会终止程序运行

在这里插入图片描述


2.3 公有成员函数back()和front()访问字符

在这里插入图片描述


3. string类对象的修改操作

在这里插入图片描述


  • 常见的有
函数名功能说明
push_back在字符串后插入字符c
append在字符串后追加一个字符串
operator+=在字符串后追加字符串str

3.1 运算符重载operator+=追加字符串/字符

在这里插入图片描述


3.2 push_back尾插字符c

在这里插入图片描述


3.3 append追加字符串

在这里插入图片描述


分类功能
string& append (const string& str)追加string类对象
string& append (const string& str, size_t subpos, size_t sublen)追加string类对象,从subpos位置开始,追加sublen个字符
string& append (const char* s)追加常量字符串
string& append (const char* s, size_t n)追加常量字符串,从首字符开始,追加n个
string& append (size_t n, char c)追加n个c字符

在这里插入图片描述


3.4 尾删字符pop_back

在这里插入图片描述


在这里插入图片描述


3.5 assign替换string类对象内容(全部替换)

在这里插入图片描述


在这里插入图片描述


  • assign在替换字符串时,会将原字符串所有内容全部替换为新的值

3.6 replace替换string类对象内容(部分替换)

在这里插入图片描述


  • 对于replace,只需要熟悉上述两个常用的接口,用常量字符串和string类对象替换
  • 与assign对比,assign是将原字符串整个替换掉,而replace相对比较温柔,它会让你选择要替换的字符串位置和要替换字符的个数
  • 当len等于0时,replace就和insert插入的功能类似

3.7 insert插入字符串

在这里插入图片描述


在这里插入图片描述


  • 关于insert的其他接口暂不赘述,可下去查文档实现,对于迭代器的接口,后面使用到会讲述

3.8 返回值npos

在这里插入图片描述


3.9 erase删除部分字符

在这里插入图片描述


在这里插入图片描述


  • 可以看出,erase删除字符后,string类对象的size会发生变化,而capacity则不会改变

3.10 swap交换函数

在这里插入图片描述


4 练习

4.1 练习题:反转字母

在这里插入图片描述


4.2 练习题:找字符串中第一个只出现一次的字符

在这里插入图片描述


4.3 "整数"字符串相加

在这里插入图片描述


  • 思路:首先找到两个"整数"字符串的尾元素下标,然后让尾元素相加,相加之后记录进位的next的值,假如8+7=13,相加之后的字符串尾元素应该为13,那么实际上尾元素应该是13%10=3,进位数next=13/10=1,然后两个尾元素下标减减,如果短的字符串结束,那让长的字符串+0即可,记录新的字符串str,用来加两个字符串相加后的尾元素
http://www.lryc.cn/news/503314.html

相关文章:

  • 【arm】程序跑飞,SWD端口不可用修复(N32G435CBL7)
  • https证书生成、linux 生成https证书、nginx 配置https证书
  • Halcon随机贴图生成缺陷图片脚本
  • [ZMQ] -- ZMQ通信Protobuf数据结构 1
  • 大数据平台
  • 《C++解锁机器学习特征工程:构建智能数据基石》
  • 《机器学习》3.7-4.3end if 启发式 uci数据集klda方法——非线性可分的分类器
  • 【Linux】VMware 安装 Ubuntu18.04.2
  • 人员离岗监测摄像机智能人员睡岗、逃岗监测 Python 语言结合 OpenCV
  • 【Spark】Spark数据倾斜解决方案、大表join小表及大表join大表优化思路
  • 探索 Cesium 的未来:3D Tiles Next 标准解析
  • 每日一站技術架構解析之-cc手機桌布網
  • prometheus监控之黑盒(blackbox)监控
  • 计算机网络之传输层协议TCP
  • 子查询与嵌套查询
  • GPT-SoVITS语音合成模型部署及使用
  • springboot423玩具租赁系统boot(论文+源码)_kaic
  • 【收藏】Cesium 限制相机倾斜角(pitch)滑动范围
  • Jenkins流水线初体验(六)
  • Azure OpenAI 生成式人工智能白皮书
  • Ubuntu22.04安装docker desktop遇到的bug
  • LLMC:大语言模型压缩工具的开发实践
  • 基于阿里云Ubuntu22.04 64位服务器Java及MySql环境配置命令记录
  • 第一课【输入输出】(题解)
  • 查看 Linux 进程运行所在 CPU 内核
  • ESP32外设学习部分--SPI篇
  • Tomcat的下载和使用,配置控制台输出中文日志
  • MySQL不能被其他地址访问,授权问题解决(8.x,,5.x)
  • 四、个人项目系统搭建
  • CV(4)--边缘提取和相机模型