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

黑马c++----string容器笔记

3.string容器

3.1.1string基本概念

本质: string 是c++风格的字符串,而string本质上是一个类
string和char*区别:

  • char*是—个指针
  • string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器。
    特点:
  • string类内部封装了很多成员方法,例如:查找find,拷贝copy,册除delete替换replace,插入insert,
  • string管理char*所分配的内存,不用担心复制越界和取值越界等,由类内部进行负责

3.1.2 string构造函数

构造函数原型:

string ();   //创建—个空的字符串例如: string str;
string(const char* s);  //使用字符串s初始化
string(const string& str);  //使用一个string对象初始化另一个string对象
string(int n, char c);  //使用n个字符c初始化

在这里插入图片描述
在这里插入图片描述

3.1.3string赋值操作

功能描述:

  • 给string字符串进行赋值
    赋值的函数原型:
string& operator=( const char* s );  //char*类型字符串赋值给当前的字符串
string& operator-( const string &s ) ;   //把字符串s赋给当前的字符串
string& operator=( char c);     //字符赋值给当前的字符串
string& assign(const char *s );      //把字符串s赋给当前的字符串
string& assign(const char *s, int n);      //把字符串s的前n个字符赋给当前的字符串
string& assign(const string &s ) ;     //把字符串s赋给当前字符串
string& assign(int n, char c);      //用n个字符c赋给当前字符串

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.1.4 string字符串拼接

功能描述:
·实现在字符串末尾拼接字符串
在这里插入图片描述
请添加图片描述
在这里插入图片描述

3.1.5 string查找和替换

功能描述:
·查找:查找指定字符串是否存在
·替换:在指定的位置替换字符串

在这里插入图片描述
find:
3
优化版本:
在这里插入图片描述

rfind 和find区别:rfind从右往左查找find从左往右查找

rfind:
在这里插入图片描述
替换:
在这里插入图片描述
在这里插入图片描述
总结:
1.find查找是从左往后,rfind从右往左
2. find找到字符串后返回查找的第一个字符位置,找不到返回-1
3. replace在替换时,要指定从哪个位置起,多少个字符,替换成什么样的字符串

3.1.6 string字符串比较

功能描述:

  • 字符串之间的比较
    比较方式:
  • 字符串比较是按字符的ASCII码进行对比
    =返回 0

返回 1
<返回 -1
函数原型:
在这里插入图片描述

3.1.7 string字符存取

string中单个字符存取方式有两种

在这里插入图片描述

string str = "hello";

在这里插入图片描述

在这里插入图片描述

3.1.8 string插入和删除

功能描述:
对string字符串进行插入和删除字符操作
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.1.9 string子串

功能描述:
·从字符串中获取想要的子串

在这里插入图片描述
在这里插入图片描述

使用操作:

在这里插入图片描述


http://www.kler.cn/a/1791.html

相关文章:

  • 【Git】—— 使用git操作远程仓库(gitee)
  • jdk17+springboot3项目加密部署
  • MacOS下TestHubo安装配置指南
  • 机器视觉检测相机基础知识 | 颜色 | 光源 | 镜头 | 分辨率 / 精度 / 公差
  • 初始JavaEE篇 —— 网络原理---传输层协议:深入理解UDP/TCP
  • 【Compose multiplatform教程08】【组件】Text组件
  • 常用React Hooks大合集(二)
  • Python制作9行最简单音乐播放器?不,我不满足
  • Unreal Engine 网络系统(一):网络模型及网络视角下的Gameplay框架
  • Redis高级篇
  • ElasticSearch快速入门详解(亲测好用,强烈推荐收藏)
  • 小菜鸟Python历险记:(第四集)
  • 【C++】用手搓的红黑树手搓set和map
  • 2023前端面试题集(含答案)之HTML+CSS篇(一)
  • 设置Typora图床(Github)
  • 本科课程【移动互联网应用开发(Android开发)】实验3 - Activity及数据存储
  • mysql常用语句
  • MongoDB【部署 01】mongodb最新版本6.0.5安装部署配置使用及mongodb-shell1.8.0安装使用(云盘分享安装文件)
  • 数据库面试题——锁
  • ChatGPT没有API?OpenAI官方API带你起飞
  • 『OPEN3D』1.6 Voxelization体素化
  • Nginx.conf 配置详解
  • 【服务器数据恢复】使用碎片拼接方法恢复SQL Server数据库的数据恢复案例
  • debian部署docker(傻瓜式)
  • Tomcat部署及优化
  • FPGA基于RIFFA实现PCIE采集ov5640图像传输,提供工程源码和QT上位机