string类的常用方法
string类是C++中一个非常常用的类,它提供了许多方法来操作字符串。以下是一些常用的string类方法:
- 构造函数:
string(): 创建一个空的字符串。string(const char* str): 用一个C风格字符串来初始化一个新的字符串。string(size_t n, char c): 创建一个由n个字符c组成的字符串。
- 赋值操作:
operator=(const char* str): 将C风格字符串赋值给字符串。operator=(const string& other): 复制另一个字符串。
- 字符串连接:
append(const char* str): 连接一个C风格字符串到当前字符串的末尾。append(size_t n, char c): 连接n个字符c到当前字符串的末尾。+= (const char* str): 连接一个C风格字符串到当前字符串的末尾。
- 字符串分割:
split(const char* delim): 根据给定的分隔符将字符串分割为子串,并返回一个包含这些子串的vector。
- 字符串查找:
find(const char* str, size_t pos = 0): 在当前字符串中搜索给定的子串,并返回第一次出现的位置(从0开始)。如果未找到,返回string::npos。rfind(const char* str, size_t pos = npos): 在当前字符串中向后搜索给定的子串,并返回最后一次出现的位置(从0开始)。如果未找到,返回string::npos。
- 字符串替换:
replace(size_t pos, size_t len, const char* str): 在当前字符串中,从pos开始替换len个字符为给定的C风格字符串。
- 字符串比较:
compare(const char* str) const: 比较当前字符串与给定的C风格字符串。如果相等返回0,小于返回负数,大于返回正数。operator==(const char* str, const string& other): 检查两个字符串是否相等。operator!=(const char* str, const string& other): 检查两个字符串是否不相等。
- 字符串截取:
substr(size_t pos, size_t len = npos) const: 返回一个新的字符串,它是当前字符串从pos开始的len个字符。如果未指定len,那么将返回从pos到当前字符串末尾的所有字符。
- 字符串遍历:
* begin() const: 返回一个指向当前字符串第一个字符的迭代器。
* end() const: 返回一个指向当前字符串末尾的迭代器。
- 其他方法:
clear(): 清空当前字符串。reserve(size_t n): 改变当前字符串的容量(保留的空间)。如果n比原来的容量小,此函数不会做任何事。如果n比原来的容量大,此函数将添加新的空闲空间。capacity() const: 返回当前字符串的容量(保留的空间)。empty() const: 如果字符串为空,则返回true,否则返回false。
除了上述提到的方法,string类还有很多其他常用的方法,例如:
- 插入字符:
insert(size_t pos, const char* str): 在当前字符串的指定位置插入给定的C风格字符串。
- 删除字符:
erase(size_t pos, size_t len = npos): 从当前字符串的指定位置删除len个字符。如果未指定len,那么将删除从pos到字符串末尾的所有字符。
- 替换字符:
replace(size_t pos, size_t len, char c): 用给定的字符c替换当前字符串中从pos开始的len个字符。
- 查找第一个/最后一个字符的位置:
find_first_of(const char* str, size_t pos = 0): 返回第一个匹配给定字符串中任何一个字符的位置。find_last_of(const char* str, size_t pos = npos): 返回最后一个匹配给定字符串中任何一个字符的位置。
- 替换子串为其他子串:
replace(size_t pos, size_t len, const char* str, size_t strPos, size_t strLen): 用给定子串替换当前字符串中从pos开始的len个字符,成为新的子串。
- 反转字符串:
swap(string& other): 与另一个字符串交换内容。
- 字符串转换为大写/小写:
make_lower(): 将当前字符串的所有字符转换为小写。make_upper(): 将当前字符串的所有字符转换为大写。
- 字符计数:
count(const char* str, size_t pos = 0) const: 返回从pos开始匹配给定字符串的次数。
- 查找子串并返回其长度:
* find_first_not_of(const char* str, size_t pos = 0) const: 返回第一个不匹配给定字符串中任何一个字符的位置,并返回其长度。
- 其他实用函数:
copy(char* buf, size_t n, size_t pos = 0) const: 将当前字符串的前n个字符复制到给定的字符数组buf中。compare(const char* str) const: 比较当前字符串与给定的C风格字符串。如果相等返回0,小于返回负数,大于返回正数。substr(size_t pos, size_t len = npos) const: 返回一个新的字符串,它是当前字符串从pos开始的len个字符。如果未指定len,那么将返回从pos到当前字符串末尾的所有字符。
相关文章:
string类的常用方法
string类是C中一个非常常用的类,它提供了许多方法来操作字符串。以下是一些常用的string类方法: 构造函数: string(): 创建一个空的字符串。 string(const char* str): 用一个C风格字符串来初始化一个新的字符串。string(size_t n, char c): 创建一个由…...
Java面向对象(高级)-- 单例(Singleton)设计模式
文章目录 一、单例设计模式(1) 设计模式概述(2) 何为单例模式(3) 实现思路(4) 单例模式的两种实现方式1. 饿汉式2. 懒汉式3. 饿汉式 vs 懒汉式 (5) 单例模式的…...
【Kingbase FlySync】命令模式:安装部署同步软件,实现Oracle到KES实现同步
【Kingbase FlySync】命令模式:安装部署同步软件,实现Oracle到KES实现同步 一.准备工作二.环境说明三.目标四.资源虚拟机 五.实操(1).准备安装环境Orcle服务器(Oracle40)1.上传所有工具包2.操作系统配置a.增加flysync 用户、设置密码b.配置环境变量c.调整limits.con…...
2311d导入c的语义不同
原文 以下D代码正常工作: enum X "X"; import core.stdc.stdio; void main(){puts(X); }但是,如果该X枚举是C文件中#define的结果,则会出现错误: //x.c #define X "X" //D代码 import x; import core.stdc.stdio; void main(){puts(X); //错误 }错误:不…...
OpenHarmony Meetup北京站招募令
OpenHarmony Meetup城市巡回北京站火热来袭!!日期:2023年11月25日14:00地点:中国科学院软件园区五号楼B402与OpenHarmony技术大咖近距离互动,分享技术见解,结交志同道合的朋友!活动主题聚焦Open…...
C语言——冒泡排序
一、冒泡排序是什么 冒泡排序: 冒泡排序(Bubble Sort),又被称为气泡排序或泡沫排序。升序时:它会遍历若干次需要排序的数列,每次遍历时,它都会从前往后依次的比较相邻两个数的大小;如果前者比后者大&#x…...
08.智慧商城——购物车布局、全选反选、功能实现
01. 购物车 - 静态布局 基本结构 <template><div class"cart"><van-nav-bar title"购物车" fixed /><!-- 购物车开头 --><div class"cart-title"><span class"all">共<i>4</i>件商品…...
金属压块液压打包机比例阀放大器
液压打包机是机电一体化产品,主要由机械系统、液压控制系统、上料系统与动力系统等组成。整个打包过程由压包、回程、提箱、转箱、出包上行、出包下行、接包等辅助时间组成。市场上液压打包机主要分为卧式与立式两种,立式废纸打包机的体积比较小…...
python 自动化福音,30行代码手撸ddt模块
用 python 做过自动化的小伙伴,大多数都应该使用过 ddt 这个模块,不可否认 ddt 这个模块确实挺好用,可以自动根据用例数据,来生成测试用例,能够很方便的将测试数据和测试用例执行的逻辑进行分离。 接下来就带大家一起…...
基于GATK流程化进行SNP calling
在进行变异检测时,以群体基因组重测序数据为例,涉及到的个体基本都是上百个,而其中大多数流程均是重复的步骤。 本文将基于GATK进行SNP calling的流程写入循环,便于批量分析。 1 涉及变量 1.工作目录work_dir/ 2.参考基因组ref…...
【Java SE】如何解读Java的继承和多态的特性?
前言 什么是继承和多态,为什么被称为Java三大特性,这两大特性为我们程序员带来了什么影响呢?是让复杂的代码简化了,还是为程序员写代码提供了多样性呢?那让我们一起来揭开这层神秘的面纱吧! 1.继承 1.1为…...
uniapp 手动调用form表单submit事件
背景: UI把提交的按钮弄成了图片,之前的button不能用了。 <button form-type"submit">搜索</button> 实现: html: 通过 this.$refs.fd 获取到form的vue对象。手动调用里面的_onSubmit()方法。 methods:…...
11月20日星期一今日早报简报微语报早读
11月20日星期一,农历十月初八,早报微语早读。 1、T1以3-0横扫WBG,拿下S13冠军!Faker豪取第4冠; 2、天舟七号货运飞船已运抵文昌发射场,将于明年初发射; 3、“中韩之战”球票已经售罄…...
Unity中 Start和Awake的区别
Awake和Start在Unity中都是MonoBehaviour脚本中的生命周期函数 Awake函数在游戏对象首次被加载时调用,在游戏对象初始化之前调用。 start函数在游戏对象初始化完成后调用,在update第一次执行前调用。 这两个函数在其生命周期内都只会调用一次…...
进度条、git常见指令以及gdb的常用指令
进度条 进度条是笔者所接触的第一个更加贴近于系统的小玩意,主要是要理解回车、换行、换行回车和缓冲区的概念。 回车是回到当前行的第一个光标位置,换行是换到下一行但是光标还在原来的位置,换行回车就是键盘上面的回车键是回到下一行的第…...
ubuntu20编译安装pkg-config
从下载到安装的步骤如下: wget https://pkg-config.freedesktop.org/releases/pkg-config-0.29.tar.gztar -zxvf pkg-config-0.29.tar.gzcd pkg-config-0.29/./configure --with-internal-glibsudo makesudo make checksudo make install make过程中可能会遇到的问题&#x…...
奇富科技发布鸿蒙元服务1.0版本,打造鸿蒙生态金融科技全新体验
近日,奇富科技率先发布鸿蒙元服务1.0版本,成为首家融入鸿蒙生态的金融科技公司,为用户带来前所未有的数字生活体验。此次与华为终端云的全面合作,是两大行业领军者的深度融合,不仅实现技术的交融,更彰显两大…...
【Git学习一】初始化仓库git init的使用和提交git add与git commit的使用
😁 作者简介:一名大四的学生,致力学习前端开发技术 ⭐️个人主页:夜宵饽饽的主页 ❔ 系列专栏:Git等软件工具技术的使用 👐学习格言:成功不是终点,失败也并非末日,最重要…...
Redux-状态管理组件
一、简介 react中的状态只属于某个组件。而Redux是一个全局管理js状态的架构,让组件通信更加容易。 之前是状态在所有组件间传递,而redux通过store来实现这个功能。 Redux特性: 1.Single source Of truth,通过store唯一维护状态…...
【bigo前端】egret中的对象池浅谈
本文首发于:https://github.com/bigo-frontend/blog/ 欢迎关注、转载。 egret是一款小游戏开发引擎,支持跨平台开发,之前使用这款引擎开发了一款捕鱼游戏,在这里简单聊下再egret中关于对象池的使用,虽然该引擎已经停止…...
(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...
基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...
Mobile ALOHA全身模仿学习
一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...
