C++(13)——string

上篇文章中介绍了string中部分函数的用法,本篇文章将继续对其他的函数进行介绍:
 

1. substr:

string substr (size_t pos = 0, size_t len = npos) const;

substr函数的两个参数如上述代码所示,此函数的主要作用是根据一个已有的string的对象的起始坐标pos开始,以长度len为范围内的内容生成一个新的string类型的对象。主要用于对一个已有的string类型的对象进行分隔。例如:

	string s1("hello world hello everyone");string s2 = s1.substr(0,5);string s3 = s1.substr(6, 5);string s4 = s1.substr(12, 5);string s5 = s1.substr(18, 8);cout << s2 << endl;cout << s3 << endl;cout << s4 << endl;cout << s5 << endl;

运行结果如下:

上面说到,substr常用于做一个已有string类型的对象的内容分离,在进行分离时,常常会和find一起进行使用。例如对于cplusplus官网中对于substr函数的说明的网站链接如下:
https://legacy.cplusplus.com/reference/string/string/substr/

 

string s1("https://legacy.cplusplus.com/reference/string/string/substr/");size_t pos = s1.find(':');string s2, s3, s4, s5, s6;s2 = s1.substr(0, pos);cout << s2 << ' ' << endl;size_t pos1 = s1.find('/',pos+3);s3 = s1.substr(pos + 3, pos1 - pos - 3);cout << s3 << ' ' << endl;size_t pos2 = s1.find('/', pos1 + 1);s4 = s1.substr(pos1 + 1, pos2 - pos1 - 1);cout << s4 << ' ' << endl;s5 = s1.substr(pos2 + 1);cout << s5 << endl;

运行结果如下:

2. find_first_of: 

size_t find_first_of (const string& str, size_t pos = 0) const;size_t find_first_of (const char* s, size_t pos = 0) const;size_t find_first_of (const char* s, size_t pos, size_t n) const;

对于find_first_of函数,其大体意义如下:给定一个strting类型的对象或者字符串或者字符,在不给定参数的情况下,在给定的上述三个类型中,从另一个strting类型的对象中寻找上述三个类型的内容,并且返回他们的坐标,下面将给出其中几个函数的使用方法:

2.1 size_t find_first_of (const string& str, size_t pos = 0) const:

例如:给定一个字符串"aeiou",同时存在一个string类型的对象,其内容为:

"Please, replace\, \, the\, \, vowels \, \, in\, \, this \, \, sentence \, \, by \, \, asterisks."
如果需要将上述对象中所有在字符串中出现的字母,即aeiou替换为*:

string str("Please, replace the vowels in this sentence by asterisks.");size_t pos = str.find_first_of("aeiou");while (pos != str.npos){str[pos] = '*';pos = str.find_first_of("aeiou");}cout << str << '\n';

对于上述代码,起运行结果为:

 

2.2  size_t find_first_of (const char* s, size_t pos = 0) const:

此函数的使用方法与上一小节中的方法相同,只是参数的类型发生了改变,故不再赘述。

2.3 size_t find_first_of (const char* s, size_t pos, size_t n) const:

依旧是使用小节2.1中的例子:

假如只需要将给定字符串"aeiou"的前两个字母在string类型的对象出现时替换为'*'

string str("Please, replace the vowels in this sentence by asterisks.");size_t pos = str.find_first_of("aeiou",0,2);while (pos != str.npos){str[pos] = '*';pos = str.find_first_of("aeiou",0,2);}cout << str << '\n';return 0;

运行结果如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/632477.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32---基本定时器(含源码)小白可入

写在前面&#xff1a;定时器是STM32中一个十分重要的外设&#xff0c;并且在STM32中具有多个定时器。定时器的包括基本定时器、通用定时器以及高级控制定时器&#xff0c;这些定时器相关独立&#xff0c;不共享任何资源。当然&#xff0c;其难易程度也是逐渐增加的&#xff0c;…

如何实现固定公网地址远程访问本地部署的Termux MySQL数据库

文章目录 前言1.安装MariaDB2.安装cpolar内网穿透工具3. 创建安全隧道映射mysql4. 公网远程连接5. 固定远程连接地址 前言 Android作为移动设备&#xff0c;尽管最初并非设计为服务器&#xff0c;但是随着技术的进步我们可以将Android配置为生产力工具&#xff0c;变成一个随身…

conda 虚拟环境相关命令

创建虚拟环境 conda create -n 虚拟环境名 python版本号查看所有的conda虚拟环境 conda env list进入虚拟环境 conda activate 虚拟环境名退出当前虚拟环境&#xff0c;回到base source deactivate删除某个整个conda虚拟环境 conda remove -n 虚拟环境名 --all在conda虚拟…

postman测试文件上传接口设置说明

Postman介绍及下载链接地址 Download Postman | Get Started for Free 打开postman 选择POST方法&#xff0c;然后设置goform 设置Header参数 设置Body参数&#xff0c;选择数据form-data 添加文件&#xff0c; 选择为文件属性 添加需要上传的文件

React16源码: React中requestCurrentTime和expirationTime的源码实现补充

requestCurrentTime 1 &#xff09;概述 关于 currentTime&#xff0c;在计算 expirationTime 和其他的一些地方都会用到 从它的名义上来讲&#xff0c;应等于performance.now() 或者 Date.now() 就是指定的当前时间在react整体设计当中&#xff0c;它是有一些特定的用处和一些…

MySql三方工具

Yearning 1.1.1 Yearning简介 Yearning 开源的MySQL SQL语句审核平台&#xff0c;提供数据库字典查询&#xff0c;查询审计&#xff0c;SQL审核等多种功能。 Yearning 1.x 版本需Inception提供SQL审核及回滚功能。 Inception是集审核&#xff0c;执行&#xff0c;回滚于一体的…

封装日期时间组件

概述 该组件包含日期选择&#xff0c;任意时间选择、固定时间点选择。 子组件代码(date-picker.vue) <template><div id"date_picker"><el-popover placement"top" width"322" trigger"click" ref"popover&quo…

照片修复可以用哪些工具?分享3款实用的!

展给了我们重新唤醒这些记忆的可能。现在&#xff0c;有许多工具可以帮助我们修复这些珍贵的照片&#xff0c;让它们重新焕发生机。那么&#xff0c;有哪些工具可以做到这一点呢&#xff1f;接下来&#xff0c;让我们一起来看看吧&#xff01; 一、智能修复软件 现在市面上有许…

vue2嵌入高德地图选择地址后显示地址和经纬度

以高德地图为里&#xff0c;申请key&#xff0c;选择js api服务&#xff0c;获取key和密钥. vue2项目代码引入相关依赖&#xff1a; npm i amap/amap-jsapi-loader -S 封装成组件: <template><div><el-row :gutter"15" class""><…

C++设计模式(李建忠)笔记2

C设计模式&#xff08;李建忠&#xff09; 本文是学习笔记&#xff0c;如有侵权&#xff0c;请联系删除。 参考链接 Youtube: C设计模式 Gtihub源码与PPT&#xff1a;https://github.com/ZachL1/Bilibili-plus 豆瓣: 设计模式–可复用面向对象软件的基础 文章目录 C设计模…

C#,入门教程(19)——循环语句(for,while,foreach)的基础知识

上一篇&#xff1a; C#&#xff0c;入门教程(18)——分支语句&#xff08;switch-case&#xff09;的基础知识https://blog.csdn.net/beijinghorn/article/details/124039953 一、for循环 当老师进入教室&#xff0c;从门口开始分别按行、列点名&#xff0c;看看哪位翘课&…

sqlilabs第五十三五十四关

Less-53(GET - GET - Error based - ORDER BY CLAUSE-String- Stacked injection) 手工注入 单引号闭合&#xff0c;和上一关一样堆叠注入解决 自动注入 和上一关一样 Less-54(GET - challenge - Union- 10 queries allowed -Variation 1) 手工注入 这一关开始后面的可以看…

Spring MVC学习之——如何接收请求传过来的参数

Spring MVC接收请求的参数 Springmvc中&#xff0c;接收页面提交的数据是通过方法形参来接收&#xff1a; 处理器适配器调用springmvc使用反射将前端提交的参数传递给controller方法的形参 springmvc接收的参数都是String类型&#xff0c;所以spirngmvc提供了很多converter&a…

Docker安全基线检查需要修复的一些问题

一、可能出现的漏洞 限制容器之间的网络流量 限制容器的内存使用量 为Docker启用内容信任 将容器的根文件系统挂载为只读 审核Docker文件和目录 默认情况下&#xff0c;同一主机上的容器之间允许所有网络通信。 如果不需要&#xff0c;请限制所有容器间的通信。 将需要相互通…

IMX6LL|时钟控制

一.时钟控制模块 4个层次配置芯片时钟 晶振时钟PLL与PFD时钟PLL选择时钟根时钟/外设时钟 1.1晶振时钟 系统时钟来源 RTC时钟源&#xff1a;32.768KHz&#xff0c;连接RTC模块&#xff0c;进行时间计算。系统时钟&#xff1a;24MHz&#xff0c;芯片主晶振 1.2PLL和PFD倍频时钟…

【Go】A和*A在作为Receiver和接口实现上的差别

内容均来自 https://www.bilibili.com/video/BV1Eb4y1F7b9 https://juejin.cn/post/6963476381728702501 什么时候要使用指针接收器&#xff1f; 1.A很大&#xff0c;因为Go语言在执行函数时会进行参数的拷贝&#xff0c;拷贝一个大的对象和拷贝一个 指针相比代价肯定要大。 2.…

Jenkins-Pipeline

Pipeline 1 安装插件 2 新建一个 Pipline 工程 3 配置Pipeline 脚本 agent的使用可以参考这个文档 pipeline {agent anystages {stage(Build) { steps {echo Building project...}}stage(Test) { steps {echo Testing project...}}stage(Deploy) { steps {echo Deploying …

java基础之线程安全问题以及线程安全集合类

线程安全问题 当多个线程同时访问同一个临界资源时,原子操作可能被破坏,会导致数据丢失, 就会触发线程安全问题 临界资源: 被多个线程同时访问的对象 原子操作: 线程访问临界资源的过程中不可更改和缺失的操作 互斥锁 每个对象都默认拥有互斥锁, 该锁默认不开启. 当开启互斥…

Go新项目-Gin中wire的依赖注入方式实战(6)

选型Go项目过程中&#xff0c;针对依赖注入方式的分析和使用 参考资料 https://go.dev/blog/wirehttps://medium.com/dche423/master-wire-cn-d57de86caa1bhttps://toutiao.io/posts/et0t2lk/previewhttps://imlht.com/archives/223/https://lailin.xyz/post/go-training-week…

即将被AI取代的工作

这个博客 100% 是由人类而不是机器人撰写的。至少在某种程度上&#xff0c;目前仍然需要内容作家。 你的工作怎么样&#xff1f;您是否想过人工智能&#xff08;AI&#xff09;是否有可能渗透到您生活的无形本质&#xff1f;您花费数年时间获得的所有知识、技能和经验是否会因…