string的简单操作

news2024/10/7 18:22:07

目录

string的接口说明

构造

constructor

operator=

迭代器操作

begin( )和end( )

rbegin( ) 和 rend( )

范围for和迭代器的关系

范围for

迭代器

容量

size

lengtn

max_size

resize

capacity

reserve

clear

empty

string类的元素访问

operator[ ]

at

front()

back()

string类对象的修改器(Modifiers)

operator+=

append

​编辑

​编辑

push_back

insert

erase

swap

pop_back

string类对象的操作函数(operations)

c_str

data()

copy()

find(),rfind()find_first_of()、find_last_of()、find_first_not_of()、find_last_not_of()

substr

compare()

string类对象的非成员函数和npos

npos

operator+(重载运算符+)

关系运算符(Relational operators)

getline()


string是一个字符序列的类

string的接口说明

构造

constructor

operator=

迭代器操作

begin( )和end( )

begin() 函数返回一个指向字符串首字符的迭代器,而 end() 函数返回一个指向字符串末尾后一个字符的迭代器(末尾后的一个位置)

rbegin( ) 和 rend( )

这里的string::reverse_iterator可以用auto代替

rbegin() 函数返回一个指向字符串最后一个字符的逆向迭代器,而 rend() 函数返回一个指向字符串首字符前一个位置的逆向迭代器

范围for和迭代器的关系

范围for循环(Range-based for loop)和迭代器(Iterators)是 C++ 中两种不同的用于遍历容器或可迭代对象的方式。它们在语法和用法上有一些区别,但本质上都是用来迭代访问容器或序列中的元素

范围for

迭代器

容量

size

字符串长度

lengtn

max_size

字符串的最长长度

resize

capacity

字符串的容量大小

reserve

扩展字符串的容量

clear

使用 clear() 函数会将字符串对象的内容清空,即将其长度设置为 0,但并不会释放内存或缩小容量,它会将字符串对象变为空字符串,等效于给字符串赋值一个空字符串

empty

empty() 函数返回一个 bool 类型的值,如果字符串对象为空,则返回 true,否则返回 false

string类的元素访问

operator[ ]

operator[] 函数用于访问字符串中指定位置 pos 处的字符。返回一个引用,允许您读取或修改该位置上的字符。如果使用 const 修饰符,则表示对字符串进行只读访问

at

at() 函数与 operator[] 类似,也用于访问字符串中指定位置 pos 处的字符。不同之处在于,at() 函数会检查索引是否有效,如果索引超出字符串范围,则抛出 std::out_of_range 异常

front()

front() 函数用于获取字符串的第一个字符

back()

back() 函数用于获取字符串的第一个字符

string类对象的修改器(Modifiers)

operator+=

+= 运算符是字符串的连接操作符,也称为字符串的拼接运算符。使用 += 运算符,您可以将一个字符串连接到另一个字符串的末尾,从而实现字符串的拼接

basic_string& operator+=(const basic_string& str);

basic_string& operator+=(const charT* s);

basic_string& operator+=(charT ch);

append

append() 函数用于在字符串的末尾添加字符或字符序列,从而实现字符串的拼接

push_back

在字符串后面插入一个字符

insert

insert() 函数用于在指定位置插入字符或字符序列,从而改变字符串的内容

erase

erase() 函数用于从字符串中删除指定位置的字符或字符序列,从而修改字符串的内容

swap

swap() 函数没有参数,它将调用它的字符串对象与另一个字符串对象进行内容交换

直接改变指针指向

pop_back

pop_back() 函数没有参数,它只需调用它的字符串对象,就会将最后一个字符从字符串中删除

注意的是,使用 pop_back() 之前,应该确保字符串的长度不为零,否则会引发未定义的行为。在调用 pop_back() 之前,通常需要检查字符串是否为空

string类对象的操作函数(operations)

c_str

这个函数返回一个指向以 null 结尾的字符数组(C 字符串)的指针,表示当前字符串的内容

data()

这个函数返回一个指向字符数组的指针,表示当前字符串的内容。与 c_str() 类似,但 data() 不一定以 null 结尾

copy()

size_type copy(charT* dest, size_type count, size_type pos = 0) const;

这个函数从当前字符串中复制 count 个字符到指定位置 pos 开始的字符数组 dest

find(),rfind()find_first_of()、find_last_of()、find_first_not_of()、find_last_not_of()

这些函数用于在当前字符串中搜索指定的字符或子字符串,并返回找到的第一个匹配位置或位置偏移

substr

basic_string substr(size_type pos = 0, size_type count = npos) const;

这个函数返回一个新的字符串,包含从位置 pos 开始的 count 个字符的副本

局域网

compare()

int compare(const basic_string& str) const noexcept

这个函数用于比较当前字符串与另一个 std::string 对象 str 的大小关系

string类对象的非成员函数和npos

npos

npos 是 std::string 类中的一个静态常量成员,用于表示无效或未找到的位置。它是一个特殊的 std::string::size_type 类型的常量,通常被定义为 std::string::npos,其值在不同的编译器和实现中可能不同,但通常被设为 -1 或一个非常大的值,用于表示在字符串中未找到指定的子串或字符。

npos 主要用于字符串查找操作,比如在使用 find()、rfind()、find_first_of()、find_last_of()、find_first_not_of()、find_last_not_of() 等成员函数时,当查找失败或没有找到指定的子串或字符时,这些函数通常会返回 std::string::npos 来表示无效的位置。

注意:npos 的值是一个非常大的无符号整数,因此在比较 std::string::size_type 类型的值时,应使用无符号类型的比较方式,避免可能出现的错误。比如使用 pos != std::string::npos 来判断是否找到了指定的子串或字符

operator+(重载运算符+)

这个函数模板用于将两个 std::string 对象进行字符串连接,返回一个新的 std::string 对象,包含两个原始字符串的内容

关系运算符(Relational operators)

这些函数模板用于对 std::string 对象进行大小比较。可以通过这些运算符对两个字符串进行逐个字符的比较,从而确定它们的大小关系

getline()

这个函数模板用于从输入流中读取一行内容,并将其存储到字符串 str 中,直到遇到指定的分隔符 delim

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

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

相关文章

【Shell脚本12】Shell 输入/输出重定向

Shell 输入/输出重定向 大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回​​到您的终端。一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端。同样,一个命令通常将其输出写入到标准输出,默…

unity3D scrollview嵌套不能滑动的问题及其解决办法

unity3D scrollview嵌套不能滑动的问题 问题来源: 现在有这么一个需求,有一个页面,希望外面是一个水平方向滑动的scrollView A,A的子对象是一种能在垂直方向滑动的scrollview,此时,如果不做特殊处理&#…

MySQL中全文索引和普通索引的区别

MySQL中的全文索引(Full-Text Index)和普通索引(比如B-Tree索引)是为了提高查询效率而设计的,但它们适用于不同的场景和查询类型。 普通索引(如B-Tree索引) 适用场景:普通索引适用于…

cleer的耳机怎么样?南卡和cleer哪个好?两款开放式耳机深度横评对比

随着开放式耳机的发展,成为许多用户的首选。开放式耳机因其更自然的音质表现和佩戴更舒适体验而备受欢迎。然而,市面上开放式耳机品牌和型号繁多,如何选择一款适合自己的耳机成为了许多用户的难题。 本期文章将为大家推荐两款市面上优秀的开…

【6】Spring Boot 3 集成组件:knift4j+springdoc+swagger3

目录 【6】Spring Boot 3 集成组件:knift4jspringdocswagger3OpenApi规范SpringFox Swagger3SpringFox工具(不推荐) Springdoc(推荐)从SpringFox迁移引入依赖配置jAVA Config 配置扩展配置:spring securit…

day26_css

今日内容 零、 复习昨日 一、CSS 零、 复习昨日 HTML - 页面基本骨架结构,内容展现 CSS - 美化页面,布局 JS - 动起来 一 、引言 1.1CSS概念 ​ 层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)…

第十九章总结

Java绘图类 Graphics 类 Grapics 类是所有图形上下文的抽象基类,它允许应用程序在组件以及闭屏图像上进行绘制。Graphics 类封装了Java 支持的基本绘图操作所需的状态信息,主要包括颜色、字体、画笔、文本、图像等。 Graphics 类提供了绘图常用的…

Linux系统编程——进程中vfork函数

函数原型 pid_t vfork(void);//pid_t是无符号整型 所需头文件 #include <sys/types.h> #include <unistd.h> 功能 vfork() 函数和 fork() 函数一样都是在已有的进程中创建一个新的进程&#xff0c;但它们创建的子进程是有区别的。 返回值 成功子进程中返回 …

nginx基本配置-基于nuc980开发板的笔记

一、介绍 前面的文章<nginx交叉编译移植-基于nuc980开发板的笔记>,介绍了如何移植nginx到开发板&#xff0c;打开的网页面是默认的网页。下面介绍如何输入网址变为指定的网页。 二、配置 ①将编写的网页&#xff0c;放到html文件夹下&#xff0c;如下图&#xff1a; ②打…

双点重发布路由策略实验

任务&IP分配如下&#xff1a; 双点重发布实验 第一步&#xff1a;配置IP地址&环回地址 以R1为例&#xff0c;R2、R3、R4同理 interface GigabitEthernet 0/0/0 ip address 12.0.0.1 24 interface GigabitEthernet 0/0/1 ip address 13.0.0.1 24 interface LookBack …

docker 安装xxl-job

1.拉取镜像 docker pull xuxueli/xxl-job-admin:2.4.0 2.docker镜像创建并运行 docker run -e PARAMS"--spring.datasource.urljdbc:mysql://xxxxx:3306/xxl_job?useUnicodetrue&characterEncodingUTF-8&autoReconnecttrue&serverTimezoneAsia/Shanghai&…

5. HTML中常用标签

5. html常用标签 5.1 标签语义 学习标签是有技巧的&#xff0c;重点是记住每个标签的语义。简单理解就是指标签的含义。即这个标签是用来干嘛的。 根据标签的语义&#xff0c;在合适的地方给一个最为合理的标签。可以让页面结构给清晰。 5.2 标题标签 <h1>-<h6>…

《算法通关村——位运算常用技巧》

《算法通关村——位运算常用技巧》 位运算的性质有很多&#xff0c;此处列举一些常见性质&#xff0c;假设以下出现的变量都是有符号整数。 ●幂等律&#xff1a;a &aa&#xff0c;a ∣ aa&#xff08;注意异或不满足幂等律&#xff09;&#xff1b; ●交换律&#xff1…

WPF xaml Command用法介绍

WPF (Windows Presentation Foundation) 中的命令设计模式是一种用于分离用户界面逻辑和业务逻辑的方法。在WPF中&#xff0c;这种模式通过命令接口&#xff08;如 ICommand&#xff09;实现&#xff0c;使得用户界面组件&#xff08;如按钮、菜单项等&#xff09;可以触发不直…

nodejs+vue电影在线预定与管理系统的设计与实现-微信小程序-安卓-python-PHP-计算机毕业设计

通过软件的需求分析已经获得了系统的基本功能需求&#xff0c;根据需求&#xff0c;将电影在线预定与管理系统功能模块主要分为管理员模块。 我国各行各业的发展在信息化浪潮的推动下也在不断进步&#xff0c;尤其是电影产业&#xff0c;在人们生活水平提高的同时&#xff0c;从…

联盟 | Quick Creator X HelpLook ,AI助力打造出海企业内容营销

随着人工智能的快速发展&#xff0c;各行各业也加快了人工智能工具的探索&#xff0c;积极将AI融入到行业发展中&#xff0c;出海外贸也不例外。AI渐渐地融入到外贸的各个环节&#xff0c;为企业出海提速增效。 为此&#xff0c;「 Quick Creator 」与 「 HelpLook 」达成战略合…

Leadshop开源商城小程序源码 – 支持公众号H5

Leadshop是一款出色的开源电商系统&#xff0c;具备轻量级、高性能的特点&#xff0c;并提供持续更新和迭代服务。该系统采用前后端分离架构&#xff08;uniappyii2.0&#xff09;&#xff0c;以实现最佳用户体验为目标。 前端部分采用了uni-app、ES6、Vue、Vuex、Vue Router、…

WordPress 媒体库文件夹管理插件 FileBird v5.5.4和谐版下载

FileBird是一款WordPress 按照文件夹管理方式的插件。 拖放界面 拖放功能现已成为现代软件和网站的标配。本机拖动事件&#xff08;包括仅在刀片中将文件移动到文件夹以及将文件夹移动到文件夹&#xff09;极大地减少了完成任务所需的点击次数。 一流设计的文件夹树展示 我们…

图解分布式事务实现原理(一)

参考 本文参考https://zhuanlan.zhihu.com/p/648556608&#xff0c;在小徐的基础上做了个人的笔记。 分布式事务场景 事务核心特性 在聊分布式事务之前&#xff0c;我们先理清楚有关于 “事务” 的定义. 事务 Transaction&#xff0c;是一段特殊的执行程序&#xff0c;其需…

STM32与ZigBee技术在智能家居无线通信中的应用研究

一、引言 智能家居系统是利用物联网技术将家庭各种设备进行互联互通&#xff0c;实现智能化控制和管理的系统。在智能家居系统中&#xff0c;无线通信技术起着至关重要的作用&#xff0c;而STM32微控制器和ZigBee技术则是实现智能家居无线通信的关键技术。本文将对STM32与ZigB…