C++学习 --string
目录
1, 什么是string
2, 创建string
3, 操作string
3-1, 赋值
3-1-1, 赋值(=)
3-1-1, 赋值(assign)
3-2, 修改
3-2-1, 拼接
3-2-1-1, 拼接(+)
3-2-1-2, 拼接(append)
3-2-2, 替换(replace)
3-2-3, 单字符操作
3-2-4, 插入(insert)
3-3, 查询
3-3-1, 查找(find)
3-3-2, 查找(rfind)
3-3-3, 子串(substr)
3-3-4, 单字符操作
3-3-5, 获取首尾字符
3-4, 比较(compare)
3-5, 删除(erase)
3-6,获取字符串长度
1, 什么是string
C++中的字符串, 本质是一个类
2, 创建string
通过string 对象名, 创建一个string
//普通创建
string str1;
//拷贝构造,str1拷贝给str2
string str2(str1);
//定义5个a组成的字符串
string str3(5, 'a');
3, 操作string
3-1, 赋值
3-1-1, 赋值(=)
通过string 对象名 = 字符串, 进行string对象赋值
//创建str1, 并赋值aaa
string str1 = "aaa";
//创建str2, 并赋值bbb
string str2("bbb");
3-1-1, 赋值(assign)
通过对象名.assign(字符串), 进行string对象赋值
string str2;
str2.assign("bbb");
//字符串有5个字符c组成
string str3;
str3.assign(5, 'c');
//将str3拷贝给str4
string str4;
str4.assign(str3);
//表示获取str1从第3个索引开始直到最后的字符赋值给str2
str2.assign(str1, 3);
//表示获取str1从第3个索引开始的后两个字符赋值给str2
str2.assign(str1, 3, 2);
3-2, 修改
3-2-1, 拼接
3-2-1-1, 拼接(+)
通过对象名1+对象名2, 拼接两个字符串
string str1 = "hello c++";
//注意拼接之间没有空格, 等价于str1 += str1
str1 = str1 + str1;
3-2-1-2, 拼接(append)
通过对象名1.append(对象名2), 拼接两个字符串
string str1 = "hello c++";
str1.append(str1);
//表示从str1的第3个索引开始直到最后, 拼接到str1后面
str1.append(str1, 3);
//表示从str1的第2个索引开始, 拼接3个字符到str1后面
str1.append(str1, 2, 3);
3-2-2, 替换(replace)
通过对象名.replace(起始索引, 结束索引, 替换值), 可替换字符串内容
string str1 = "hello c++";
//将第1~3号位索引对应的信息替换为aaa
str1.replace(1, 3, "aaa");
3-2-3, 单字符操作
通过对象名[索引]或者对象名.at(索引), 获取字符串的单个字符
//获取索引为1对应的字符
cout << str1[1] << endl;
cout << str1.at(1) << endl;
3-2-4, 插入(insert)
通过对象名.insert(索引, 值), 向字符串中插入数据
//在str1的第二个索引位置插入aaa
str1.insert(2, "aaa");
3-3, 查询
3-3-1, 查找(find)
通过对象名.find(), 可查找字符串中的子串, 从左开始查找, 返回对应的首次匹配索引
cout << str1.find("aa") << endl;
3-3-2, 查找(rfind)
通过对象名.rfind(), 可查找字符串中的子串, 从右开始查找, 返回对应的首次匹配索引
cout << str1.find("l") << endl;
3-3-3, 子串(substr)
通过对象名.substr(起始索引, 结束索引), 返回起始索引~结束索引的字符
//返回str1的第1~4个字符
cout << str1.substr(1, 4) << endl;
3-3-4, 单字符操作
通过对象名[索引]或者对象名.at(索引), 修改字符串的单个字符
//修改索引为1对应的字符
str1[1] = 'a';
str1.at(2) = 'a';
cout << str1[1] << endl;
cout << str1.at(1) << endl;
3-3-5, 获取首尾字符
通过对象名.front(), 获取字符串首字符, 通过对象名.back(), 获取字符串尾字符
cout << str1.front() << endl;
cout << str1.back() << endl;
3-4, 比较(compare)
通过对象名1.compare(对象名2), 进行比较字符串大小, 逐个比较两个字符串的Ascii码, 相等返回0, 对象名1大于对象名2返回1, 对象名1小于对象名2返回-1
string str1 = "hello c++";
string str2 = "1hello c++";
cout << str1.compare(str2) << endl;
3-5, 删除(erase)
通过对象名.erase(起始索引, 结束索引), 删除字符串中指定的字符
//删除str1的第1~3个字符
str1.erase(1, 3);
cout << str1 << endl;
3-6,获取字符串长度
cout << str1.size() << endl;
相关文章:
C++学习 --string
目录 1, 什么是string 2, 创建string 3, 操作string 3-1, 赋值 3-1-1, 赋值() 3-1-1, 赋值(assign) 3-2, 修改 3-2-1, 拼接 3-2-1-1, 拼接() 3-2-1-2ÿ…...
Spark SQL,DF,RDD cache常用方式
RDD中的cache 调用cache方法 val testRDD sc.parallelize(Seq(elementA, elementB, elementC)).map(x > (x._1, x._2)).setName("testRDD")testRDD.cache() dataframe中的cache 利用catalog以表的形式对数据进行缓存 import org.apache.spark.SparkConf impo…...

Python中如何用栈实现队列
目录 一、引言 二、使用两个栈实现队列 三、性能分析 四、应用场景 五、代码示例 六、优缺点总结 一、引言 队列(Queue)和栈(Stack)是计算机科学中常用的数据结构。队列是一种特殊的线性表,只允许在表的前端进行…...
python模块pyDes,DES对称加密算法库
一、简介 pyDes是一个Python模块,用于进行DES(Data Encryption Standard)加密和解密操作。DES是一种对称密钥加密算法,广泛用于数据保密和传输。 优点: 1.简单易用:pyDes模块提供了简单的接口,…...

Centos7安装配置nginx
快捷查看指令 ctrlf 进行搜索会直接定位到需要的知识点和命令讲解(如有不正确的地方欢迎各位小伙伴在评论区提意见,小编会及时修改) Centos7安装配置nginx Nginx介绍 Nginx (engine x) 是一个高性能的 HTTP 和 反向代理 服务,也…...

9.Spring 整合 Redis
引入依赖:spring-boot-starter-data-redis配置 Redis:配置数据库参数、编写配置类,构造 RedisTemplate访问 Redis: redisTemplate.opsForValue() redisTemplate.opsForHash() redisTemplate.opsForList() redisTemplate.opsForSe…...

【Java学习笔记】73 - 正则表达式
项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter27/src/com/yinhai/regexp 一、引入正则表达式 1.提取文章中所有的英文单词 2.提取文章中所有的数字 3.提取文章中所有的英文单词和数字 4.提取百度热榜标题 正则表达式是处理文本的利器…...

【算法】滑动窗口题单——1.定长滑动窗口⭐
文章目录 1456. 定长子串中元音的最大数目2269. 找到一个数字的 K 美丽值1984. 学生分数的最小差值(排序)643. 子数组最大平均数 I1343. 大小为 K 且平均值大于等于阈值的子数组数目2090. 半径为 k 的子数组平均值2379. 得到 K 个黑块的最少涂色次数1052…...
可观测性项目开发与学习ing
http1,2,3的区别 HTTP/1.0、HTTP/1.1、HTTP/2 和 HTTP/3 是不同版本的协议,它们在以下方面有所不同: HTTP/1.0: 是最早的版本,主要特点如下: 每个请求和响应都需要建立一个新的 TCP 连接。不支持持久连接(Keep-Alive&…...
apache-poi
excel类型 excel分为03版本和07版本 03版本 new HSSFWorkbook(); 优点:速度快 缺点:只能写入65536行数据 文件类型:.xls07版本 new XSSFWorkbook(); 优点:不限制写入数量 缺点:容易造成内存溢出(OOM),速度…...

TOD和PPS精确时间同步技术
介绍 PPS和TOD PPS和TOD是两种用于精确时间同步的技术,它们在许多领域都有广泛的应用,总的来说,PPS和TOD被广泛应用于各种需要高度精确时间同步的领域,包括通信、测量、测试、系统集成和计算机网络等。 一、PPS PPS(…...
通过一个例子理解pytest的fixture的使用
需求 希望编写登陆web后做一些操作的测试用例,使用pytest框架具体测试用例执行前,需要先拿到web的token,这个获取token的动作只执行一次 例一 先上测试用例代码 adminpc-1:~$ cat my_test.py import pytestclass TestWebLogin:pytest.fi…...

单片机BootLoader是咋回事?
BootLoader的定义: CPU进入APP之前运行的一小段程序代码就叫做BootLoader。它是由程序员编写的,作用是更新应用程序。这也就说明了只有BootLoader的单片机才可以升级。有的产品有升级的需要就需要BootLoader了。 单片机的启动过程可以这么叙述ÿ…...
python与机器学习1,机器学习的一些基础知识(完善ing)
目录 1 关于阈值θ和偏移量b和公式变形的由来 2 激活函数 3 关于回归,分类等 4 关于模型 5 关于回归 6 关于分类 7 关于误差和梯度下降 7-2 最小二乘法修改θ 8 深度学习 10 分类 11 参考书籍 1 关于阈值θ和偏移量b和公式变形的由来 比如很多信息传入可…...

移动应用开发介绍及iOS方向学习路线(HUT移动组版)
移动应用开发介绍及iOS方向学习路线(HUT移动组版) 前言 作为一个HUT移动组待了一坤年(两年半)多的老人,在这里为还在考虑进哪个组的萌新们以及将来进组的新朋友提供一份关于移动应用开发介绍以及学习路线的白话文…...

vue+uniapp校园寻物失物招领平台 微信小程序1f6z5
系统中的核心用户是管理员,管理员登录后,通过管理员菜单来管理后台系统。主要功能有:首页、个人中心、用户管理、物品分类管理、物品信息管理、物品归还管理、留言板管理、系统管理等功能。管理员用例如图3-7所示。 对于本网上失物招领小程序…...
Linux内核--内存管理(三)物理内存分页机制--kmalloc及slub机制
一、引言 二、slub机制 ------>2.1、slub分配原理slub原理 ------>2.2、slub分配原理 ------>2.3、slub释放原理 ------>2.4、SLUB分配器 三、slub数据结构 ------>3.1、kmem_cache ------>3.2、kmem_cache_cpu ------>3.3、kmem_cache_node --…...

Shell - cron_protect.sh 监控 Python、Streaming 程序
目录 一.引言 二.Flink 程序监控 1.shell 脚本 2.crontab 配置 三.Python 程序监控 1.shell 脚本 2.crontab 配置 四.总结 一.引言 业务有流式处理数据的需求,需要 7x24 通过 Flink Python 程序进行处理。为了监控 Flink 与 Python 的程序运行状态并在程…...

MSB3541 Files 的值“<<<<<<< HEAD”无效。路径中具有非法字符。
MSB3541 Files 的值“<<<<<<< HEAD”无效。路径中具有非法字符。 一般来说出现这个问题是因为使用git版本控制工具合并代码出现了问题,想要解决也很简单。 如图点击错误后定位到文件,发现也没有什么问题。 根据错误后边的提示&a…...

【赠书第9期】巧用ChatGPT高效搞定Excel数据分析
文章目录 前言 1 操作步骤 1.1 数据清理和整理 1.2 公式和函数的优化 1.3 图表和可视化 1.4 数据透视表的使用 1.5 条件格式化和筛选 1.6 数据分析技巧 1.7 自动化和宏的创建 2 推荐图书 3 粉丝福利 前言 ChatGPT 是一个强大的工具,可以为你提供在 Exce…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...

python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
C++.OpenGL (14/64)多光源(Multiple Lights)
多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看
文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...

CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!
本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...