【算法与数据结构】【字符串篇】【String的常见函数】

news2024/10/10 22:24:57

系列文章

本人系列文章-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/handsomethefirst/article/details/138226266?spm=1001.2014.3001.5502


1.string基本概念

string是C++风格的字符串,而string本质上是一个类。

string和char * 区别:
char * 是一个指针
string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器。

2.构造函数

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

3.插入函数

函数说明
push_back()尾部插入一个字符。例如:s.push_back(‘p’);
insert(int pos, const string& str);在pos的位置插入字符串
insert(int pos, int n, char c);在poc的指定位置插入n个字符c

4.遍历函数

方法说明
下标运算符访问如:s[1]
正向迭代器如:string::iterator it=s.begin();it!=s.end();it++;
反向迭代器如:string::reverse_iterator it=s.rebegin();it!=s.rend();it++;

5.删除函数

方法说明
string& erase(int pos, int n )删除从Pos开始的n个字符
erase(string::iterator it);s.erase(s.begin()),删除指定位置的字符

6.查找函数

find查找是从左往后,rfind从右往左

find找到字符串后返回查找的第一个字符位置,找不到返回-1

方法说明
int find(const string& str, int pos = 0) const

查找str第一次出现位置,从pos开始查找

int pos = str1.find("de");

int find(const char c, int pos = 0) const;查找字符c第一次出现位置
int rfind(const string& str, int pos = npos) const;查找str最后一次位置,从pos开始查找
int rfind(const char c, int pos = 0) const;查找字符c最后一次出现位置
size_type find_first_not_of(const string &str,size_type index =0 )const;

返回在字符串中首次出现的不匹配str中的任何一个字符的首字符索引, 从index开始搜索, 如果全部匹配则返回string::npos()。

string a("abcdefg");

cout<< a.find_first_not_of("abcdef")<< endl;//值为6

size_type find_first_not_of(const Char* str,size_type index,size_type num )const;

从index开始起搜索当前字符串, 查找其中与str前num个字符中的任意一个都不匹配的序列, 返回满足条件的第一个字符索引, 否则返回string::npos。

string a("abcdefg");

cout << a.find_first_not_of("abceef", 0, 4) << endl;//值为3

7.替换函数

方法说明
string& replace(int pos, int n, const string& str)替换从pos开始n个字符为字符串str
string& replace(int pos, int n,const char* s);替换从pos开始的n个字符为字符串s

8.赋值函数

方法说明
string& operator=(const string &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赋给当前字符串

 9.拼接函数

方法说明
string& operator+=(const string& str);在字符串末尾拼接字符串
string& operator+=(const char* str);在字符串末尾拼接字符串
string& operator+=(const char c);在字符串末尾拼接字符
string& append(const char *s, int n);把字符串s的前n个字符连接到当前字符串结尾
string& append(const string &s, int pos, int n);字符串s中从pos开始的n个字符连接到字符串结尾

10.比较函数

字符串对比主要是用于比较两个字符串是否相等,判断谁大谁小的意义并不是很大

字符串比较是按字符的ASCII码进行对比
= 返回 0
> 返回 1
< 返回 -1

方法说明
int compare(const string &s) const;与字符串s比较
int compare(const char *s) const;与字符串s比较
<,>,<=, >=, ==, !=与字符串比较(这个更方便)

11.提取子串

从字符串中获取想要的子串

方法说明
string substr(int pos = 0, int n ) const;返回由pos开始的n个字符组成的字符串

12.字符修改

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

方法说明
char& operator[](int n);通过[]方式取字符。例如:str[0] = 'x';
char& at(int n);通过at方法获取字符.例如:str.at(1) = 'x

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

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

相关文章

OpenAI 收购桌面实时协作公司 Multi;iOS 18 开放 iPhone 镜像测试丨RTE 开发者日报 Vol.231

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE&#xff08;Real-Time Engagement&#xff09; 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

[深度学习] 卷积神经网络CNN

卷积神经网络&#xff08;Convolutional Neural Network, CNN&#xff09;是一种专门用于处理数据具有类似网格结构的神经网络&#xff0c;最常用于图像数据处理。 一、CNN的详细过程&#xff1a; 1. 输入层 输入层接收原始数据&#xff0c;例如一张图像&#xff0c;它可以被…

图片怎么加水印?快来试试这6个图片加水印方法(2024年新)

图片怎么加水印&#xff1f;作为打工人在日常的工作生活中总会遇到各种各样的工作难题&#xff0c;相信从事电商或者是设计等工作的小伙伴们&#xff0c;遇到最多的问题应该就是给图片添加水印了。为什么要给图片加水印&#xff1f;其实给图片加水印最主要的目的是保护我们的图…

Linux集群自动化维护-Ansible

1.1Ansible概述 自动化运维&#xff1a;批量管理&#xff0c;批量分发&#xff0c;批量执行&#xff0c;维护。。是python写的 批量管理工具&#xff1a; Ansible&#xff08;无客户端&#xff09;&#xff1a;无客户端&#xff0c;基于ssh进行管理与维护 Saltstack &#…

深度之眼(二十五)——研究生学习计划安排

文章目录 一、前言二、结构安排和规划2.1 夯实基础2.2 分方向训练&#xff08;待&#xff09;2.3 进阶训练 三、其他 一、前言 课题组这边是需要对机器视觉有所要求吧&#xff0c;也就是CV方向。这一届研三师兄也都是在大厂拿到30W的年薪了&#xff0c;也是需要拥抱深度学习这…

NineData和华为云在一起!提供一站式智能数据库DevOps平台

以GuassDB数据库为底座 NineData和华为云一起 为企业提供 一站式智能数据库DevOps平台 帮助开发者 高效、安全地完成 数据库SQL审核 访问控制、敏感数据保护等 日常数据库相关开发任务 NineData 智能数据管理平台 NineData 作为新一代的云原生智能数据管理平台&#xf…

SpringCloud:Gateway服务网关

程序员老茶 &#x1f648;作者简介&#xff1a;练习时长两年半的Java up主 &#x1f649;个人主页&#xff1a;程序员老茶 &#x1f64a; P   S : 点赞是免费的&#xff0c;却可以让写博客的作者开心好久好久&#x1f60e; &#x1f4da;系列专栏&#xff1a;Java全栈&#…

聚星文社ai工具下载

您可以在聚星文社官方网站上下载他们的AI工具。请访问他们的官方网站&#xff0c; 然后找到下载页面&#xff0c;从中选择并下载所需的AI工具。下载 如果您对下载过程有任何问题&#xff0c;建议您直接联系聚星文社的客服人员寻求帮助。

统信UOS系统忘记登录密码怎么办

在使用统信操作系统UOS的时候有可能会出现忘记密码的情况&#xff0c;当遇到了用户登录密码忘记时如何修改&#xff1f;今天分享一下忘记超级系统管理员Root以及普通密码时的解决方法。 因为UOS系统版本的原因&#xff0c;UOS 1031操作系统取消了单用户更改密码的方法&#xff…

Sulfo Cy3-NHS Ester生物标记与成像

【星戈瑞stargraydye】以下数据均来自文献资料,星戈瑞暂未进行独立验证, 仅供参考&#xff01; 在生物医学研究的前沿领域&#xff0c;荧光标记技术扮演着科研角色。其中&#xff0c;Sulfo Cy3 NHS Ester作为一种性能的荧光染料&#xff0c;以其高灵敏度、高特异性以及良好的生…

绿色共享购:共创绿色消费新纪元

在当今快节奏的社会中&#xff0c;人们对绿色消费和共享经济的追求愈发凸显其重要性。为了满足这一需求&#xff0c;我们创新推出了“绿色共享购”这一前沿的消费增值模式。该模式不仅有效整合了商家资源&#xff0c;更通过其独特的机制&#xff0c;实现了商家与消费者的双重增…

Unity关于Addressables.Release释放资源内存问题

前言 最近在编写基于Addressables的资源管理器&#xff0c;对于资源释放模块配合MemoryProfiler进行了测试&#xff0c;下面总结下测试Addressables.Release的结论。 总结 使用Addressables.Release释放资源时&#xff0c;通过MemoryProfiler检查内存信息发现加载的内容还在…

[leetcode]unique-paths 不同路径

. - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int uniquePaths(int m, int n) {vector<vector<int>> f(m, vector<int>(n));for (int i 0; i < m; i) {f[i][0] 1;}for (int j 0; j < n; j) {f[0][j] 1;}for (int i 1; i &l…

Ubuntu22 更新内核后终端输入卡顿,最简单的解决方案

在系统升级后相信很多人都遇到了这个问题&#xff0c;系统终端输入卡顿&#xff0c;但是ssh远程进来不卡&#xff0c;使用第三方终端也不卡,…&#xff0c;今天终于忍不了&#xff0c;解决了 现象&#xff1a; 更新Nvidia驱动后,内核进行了自动编译升级。 之后的一段时间使用…

grpc学习golang版( 二、入门示例)

系列文章目录 第一章 grpc基本概念与安装 第二章 grpc入门示例 文章目录 一、环境二、编写protobuf文件三、编写server服务端四、编写服务端五、测试 一、环境 确保环境已经配置完成&#xff0c;效果如下。不同环境可能导致后续生成的效果不一。 go version protoc --version…

后端返回base64文件流下载

后端返回base64文件流: 前端处理&#xff1a; downloadTemplate () {this.$API.downloadTemplate().then(({ data }) > {const binaryString atob(data) // 解码base64字符串const byteArray new Uint8Array(binaryString.length) // 创建一个Uint8Arrayfor (let i 0; i…

AI时代下:面对高要求低薪酬,我们如何破局?

在人工智能&#xff08;AI&#xff09;技术日新月异的今天&#xff0c;职场生态正经历着颠覆性的变革。AI技术的广泛应用极大地提高了工作效率&#xff0c;为企业带来了前所未有的发展契机&#xff0c;然而&#xff0c;这也给我们这些职场人带来了前所未有的挑战。在这些挑战中…

# Kafka_深入探秘者(6):kafka 物理存储

Kafka_深入探秘者&#xff08;6&#xff09;&#xff1a;kafka 物理存储 一、kafka 存储结构 1、kafka 存储结构概述图 2、kafka 存储结构概述 每一个 partion (文件夹)相当于一个巨型文件被平均分配,到多个大小相等 segment(段) 数据文件里。但每一个段 segment file 消息数…

CV每日论文--2024.6.24

1、Whiteboard-of-Thought: Thinking Step-by-Step Across Modalities 中文标题&#xff1a;思维白板&#xff1a;跨模式逐步思考 简介&#xff1a;这段话描述了一种利用思维白板提示来增强大型语言模型在视觉推理任务中的性能的方法。 人类在解决需要视觉思考的问题时,通常会…

DarkGPT:基于GPT-4-200k设计的人工智能OSINT助手

关于DarkGPT DarkGPT是一款功能强大的人工智能安全助手&#xff0c;该工具基于GPT-4-200k设计并实现其功能&#xff0c;可以帮助广大研究人员针对泄露数据库进行安全分析和数据查询相关的OSINT操作。 工具要求 openai1.13.3 requests python-dotenv pydantic1.10.12 工具安装 …