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

文章目录

  • 1. string类对象的查找操作
    • 1.1 c_str返回c格式字符串
    • 1.2 substr获取string类对象子串
    • 1.3 find和rfind查找字符串内容
    • 1.4 find_first_of与find_first_not_of
    • 1.5 find_last_of与find_last_not_of
    • 1.6 copy复制string类对象内的字符串内容
    • 1.7 compare对比string类字符串
    • 1.8 全局函数relational operators(string)
    • 1.9 全局函数operator+
    • 1.10 全局函数getline读取字符串
  • 2. 练习题:计算0最后一个单词的长度
  • 3. 验证字符串是否是回文串

1. string类对象的查找操作

在这里插入图片描述


  • 这里主要掌握常用的几个接口,比如find查找字符、rfind倒着查找字符、substr截取字符串子串等,其他了解即可

1.1 c_str返回c格式字符串

  • 实际中,C++的某些接口可能还用C语言的形式,由于c++兼容c语言的用法,因此,在实际工程中,c++可能和c语言混着用
  • 这里对c_str返回c类字符串简单举个例子,这就要检验之前学习C语言阶段文件处理的功底了

在这里插入图片描述


在这里插入图片描述


1.2 substr获取string类对象子串

在这里插入图片描述


在这里插入图片描述


1.3 find和rfind查找字符串内容

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


1.4 find_first_of与find_first_not_of

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


  • find_first_of与find_first_not_of是用来查找string类对象里面的字符串是否匹配给定的常量字符串
  • 对于find_first_of,如果不指定查找的位置,他会从string类对象str首字符开始,一个一个字符查找,看是否与“aeiou”中的某个字符匹配,如果匹配则返回该字符在str中的位置
  • 对于find_first_not_of,如果不指定查找的位置,他会从string类对象str首字符开始,一个一个字符查找,看是否与“aeiou”中的某个字符不匹配,如果不匹配则返回该字符在str中的位置

1.5 find_last_of与find_last_not_of

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


1.6 copy复制string类对象内的字符串内容

在这里插入图片描述


在这里插入图片描述


1.7 compare对比string类字符串

在这里插入图片描述


  • compare对比的原则就是:如果给了判定条件,假如a>b这种,满足条件返回大于0的数,一般为1,不满足条件则返回0
  • 如果没有给定判定条件,例如s2.compare(s1),他会将s1和s2进行比较,如果s2大于s1,那么返回大于0的数;如果s2小于s1,那么返回小于0的数;如果s2等于s1,那么返回0

在这里插入图片描述


1.8 全局函数relational operators(string)

在这里插入图片描述


  • 上面提到的compare是string里面的成员函数,C++把字符串中的比较运算符重载为全局函数,迭代器都可以使用,而不仅仅局限于string

在这里插入图片描述


1.9 全局函数operator+

在这里插入图片描述


在这里插入图片描述


1.10 全局函数getline读取字符串

在这里插入图片描述


  • 输入流cin读取字符串时遇到空格或者换行符’\n’就会自动停止读取,而需要读取中间有多个空格或者其他字符的字符串时,cin明显不行,getline便可以实现

在这里插入图片描述


在这里插入图片描述


2. 练习题:计算0最后一个单词的长度

  • 题目

在这里插入图片描述


在这里插入图片描述


3. 验证字符串是否是回文串

  • 题目

在这里插入图片描述


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

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

相关文章

【教程】如何下载WandB平台的运行数据?

【教程】如何下载WandB平台的运行数据? 前言 CSDN主页:https://blog.csdn.net/rvdgdsva 博客园主页:https://www.cnblogs.com/hassle Weights & Biases (WandB)是一个用于机器学习的平台,它提供了一套工具来帮助你跟踪、比…

vscode设置终端代理

转载请标明出处:小帆的帆的博客 设置终端代理 修改项目的.vscode/settings.json {"terminal.integrated.env.windows": {"http_proxy": "http://127.0.0.1:7890","https_proxy": "http://127.0.0.1:7890"}, }…

【Linux】自定义项目-进度条

更多精彩内容..... 🎉❤️播主の主页✨😘 Stark、-CSDN博客 准备工作:"\r"与"\n"字符 ①:基本含义 在C语言和Linux环境中,\r是回车符,\n是换行符,用于控制文本格式和输出…

Linux从0到1——初识线程【什么是线程/线程控制/详解tid】

Linux从0到1——初识线程 1. 什么是线程?1.1 线程的概念1.2 结合代码理解线程1.3 重谈地址空间1.4 线程的优缺点 2. 线程异常和线程用途3. Linux进程VS线程4. 详解pthread_create的arg参数4.1 给线程传参4.2 一次创建多个线程 5. 线程控制5.1 线程退出5.2 线程分离5…

[免费]SpringBoot+Vue校园社团管理系统(优质版)【论文+源码+SQL脚本】

大家好,我是java1234_小锋老师,看到一个不错的SpringBootVue校园社团管理系统(优质版),分享下哈。 项目视频演示 【免费】SpringBootVue校园社团管理系统(优质版) Java毕业设计_哔哩哔哩_bilibili 项目介绍 随着信息技术的迅速发展&#x…

114 二叉树展开为链表

解题思路: \qquad 题目中已经明确,要用先序遍历的顺序展开,那么就需要按照“中-左-右”的顺序遍历二叉树,剩下的问题在于如何在遍历过程中完成链表指针的更新。 \qquad 由于“右子节点”需要链接到左子树最后一个节点之后&#…

Kylin麒麟操作系统 | Nginx服务部署

目录 一、理论储备1. Nginx概述2. Nginx与Apache的区别3. Nginx的服务配置 二、任务实施任务1 Nginx的编译安装1. Server配置2. 客户端测试 任务2 Nginx反向代理1. Server1配置2. Server2配置3. 客户端测试 一、理论储备 1. Nginx概述 Nginx是一个轻量级的web服务器&#xff…

类OCSP靶场-Kioptrix系列-Kioptrix Level 1

一、前情提要 二、实战打靶 1. 信息收集 1.1. 主机发现 1.2. 端口扫描 1.3 目录爆破 1.4. 敏感信息 2.根据服务搜索漏洞 2.1. 搜索exp 2.2. 编译exp 2.3. 查看exp使用方法,并利用 3. 提权 二、第二种方法 一、前情提要 Kioptrix Level是免费靶场&#x…

Golang囊地鼠gopher

开发知识点-golang 介绍红队专题-Golang工具Fscan简介主要功能ubuntu 安装windows 安装常用命令:项目框架源文件common目录Plugins目录Webscan目录入口点插件扫描类型爆破插件common.ScantypeWebtitle函数webpoc扫描POC 执行CEL-GO 实践CEL指纹识别免杀源码特征参考链接红队专…

快速上手Spring注解、SpringAop

1 Spring 注解的使用 1 IOC 的概念 IOC(Inversion of Control):控制反转。 使用对象时,由主动new产生对象转换为由外部提供对象,此过程中对象创建控制权由程序转移到外部,此思想称为控制反转。通俗的讲就…

数据地图怎么做?推荐这款数据可视化地图生成器

在数字化与信息化高速发展的今天,企业迎来了前所未有的发展机遇,规模迅速扩张,市场版图不断延伸。然而,伴随着这种快速的发展,一个不容忽视的问题逐渐浮出水面——如何精准高效地掌握分布在各地的分公司、业务点乃至整…

鸿蒙项目云捐助第九讲鸿蒙App应用的捐助详情页功能实现

鸿蒙项目云捐助第九讲鸿蒙App应用的捐助详情页功能实现 这里接下来继续实现捐助详情页的布局页面,也就是当用户进入到分类页面后,点击分类的每一个商品就进入到捐助商品的详情页,这里的布局可以从下面的模板演化而来。 下面根据这个模板来进…

【数学】矩阵的逆与伪逆 EEGLAB

文章目录 前言matlab代码作用EEGLAB 中的代码总结参考文献 前言 在 EEGLAB 的使用中,运行程序时出现了矩阵接近奇异值,或者缩放错误。结果可能不准确。RCOND 1.873732e-20 的 bug,调查 EEGLAB 后发现是 raw 数据的问题。 matlab代码 A_1 …

华为HarmonyOS NEXT 原生应用开发:鸿蒙中组件的组件状态管理、组件通信 组件状态管理小案例(好友录)!

文章目录 组件状态管理一、State装饰器1. State装饰器的特点2. State装饰器的使用 二、Prop装饰器(父子单向通信)1. Prop装饰器的特点2. Prop装饰器的使用示例 三、Link装饰器(父子双向通信)1. Link装饰器的特点3. Link使用示例 四…

Pytorch | 对比Pytorch中的十种优化器:基于CIFAR10上的ResNet分类器

Pytorch | 对比Pytorch中的十种优化器:基于CIFAR10上的ResNet分类器 CIFAR10数据集ResNet提出背景网络结构特点工作原理优势 代码实现分析utils.pymain.py导入必要的库设备选择与数据预处理定义加载训练集和测试集主函数部分训练部分测试部分 结果10种优化器对应的训…

Linux系统操作03|chmod、vim

上文: Linux系统操作02|基本命令-CSDN博客 目录 六、chmod:给文件设置权限 1、字母法 2、数字法(用的最多) 七、vim:代码编写和文本编辑 1、启动和退出 1️⃣启动 2️⃣退出 2、vim基本操作 六、chmod&#x…

徐州数字孪生工业互联网可视化技术,赋能新型工业化智能制造工厂

#徐州数字孪生工业互联网#在当下智能制造的热潮之下,徐州作为中国制造业的重要基地,正积极拥抱数字化转型,通过数字孪生工业互联网可视化技术,赋能新型工业化智能制造工厂,引领制造业向更高效、更智能、更绿色的方向发…

C# 探险之旅:第二十四节 - 类型class基础,一场“类”似的奇妙冒险

嘿,勇敢的探险家们!欢迎来到C#王国的“类”似奇妙冒险!今天,我们要深入探索一个神秘而强大的领域——class(类)。想象一下,class就像C#世界里的一块魔法土地,每块土地上都能孕育出独…

(五)机器学习 - 数据分布

数据分布(Data Distribution)是指数据在不同值或值区间内的分布情况,它描述了数据点在整个数据集中是如何分散或集中的。数据分布可以通过多种方式来分析和表示,包括图形和数值方法。 常见的数据分布特征和描述数据分布的方法&…

基于stm32的红外测温系统设计(论文+源码)

1总体方案设计 本课题为基于STM32的红外测温系统设计,在此将系统架构设计如图3.1所示, 整个系统包括STM32F103单片机,红外测温模块MLX90614,显示模块OLED12864,蜂鸣器以及按键等构成,在功能上,…