当前位置: 首页 > news >正文

string类的常用方法

string类是C++中一个非常常用的类,它提供了许多方法来操作字符串。以下是一些常用的string类方法:

  1. 构造函数:
  • string(): 创建一个空的字符串。
    • string(const char* str): 用一个C风格字符串来初始化一个新的字符串。
    • string(size_t n, char c): 创建一个由n个字符c组成的字符串。
  1. 赋值操作:
  • operator=(const char* str): 将C风格字符串赋值给字符串。
    • operator=(const string& other): 复制另一个字符串。
  1. 字符串连接:
  • append(const char* str): 连接一个C风格字符串到当前字符串的末尾。
    • append(size_t n, char c): 连接n个字符c到当前字符串的末尾。
    • += (const char* str): 连接一个C风格字符串到当前字符串的末尾。
  1. 字符串分割:
  • split(const char* delim): 根据给定的分隔符将字符串分割为子串,并返回一个包含这些子串的vector。
  1. 字符串查找:
  • find(const char* str, size_t pos = 0): 在当前字符串中搜索给定的子串,并返回第一次出现的位置(从0开始)。如果未找到,返回string::npos
    • rfind(const char* str, size_t pos = npos): 在当前字符串中向后搜索给定的子串,并返回最后一次出现的位置(从0开始)。如果未找到,返回string::npos
  1. 字符串替换:
  • replace(size_t pos, size_t len, const char* str): 在当前字符串中,从pos开始替换len个字符为给定的C风格字符串。
  1. 字符串比较:
  • compare(const char* str) const: 比较当前字符串与给定的C风格字符串。如果相等返回0,小于返回负数,大于返回正数。
    • operator==(const char* str, const string& other): 检查两个字符串是否相等。
    • operator!=(const char* str, const string& other): 检查两个字符串是否不相等。
  1. 字符串截取:
  • substr(size_t pos, size_t len = npos) const: 返回一个新的字符串,它是当前字符串从pos开始的len个字符。如果未指定len,那么将返回从pos到当前字符串末尾的所有字符。
  1. 字符串遍历:

* begin() const: 返回一个指向当前字符串第一个字符的迭代器。

* end() const: 返回一个指向当前字符串末尾的迭代器。

  1. 其他方法:
  • clear(): 清空当前字符串。
    • reserve(size_t n): 改变当前字符串的容量(保留的空间)。如果n比原来的容量小,此函数不会做任何事。如果n比原来的容量大,此函数将添加新的空闲空间。
    • capacity() const: 返回当前字符串的容量(保留的空间)。
    • empty() const: 如果字符串为空,则返回true,否则返回false。

除了上述提到的方法,string类还有很多其他常用的方法,例如:

  1. 插入字符:
  • insert(size_t pos, const char* str): 在当前字符串的指定位置插入给定的C风格字符串。
  1. 删除字符:
  • erase(size_t pos, size_t len = npos): 从当前字符串的指定位置删除len个字符。如果未指定len,那么将删除从pos到字符串末尾的所有字符。
  1. 替换字符:
  • replace(size_t pos, size_t len, char c): 用给定的字符c替换当前字符串中从pos开始的len个字符。
  1. 查找第一个/最后一个字符的位置:
  • find_first_of(const char* str, size_t pos = 0): 返回第一个匹配给定字符串中任何一个字符的位置。
    • find_last_of(const char* str, size_t pos = npos): 返回最后一个匹配给定字符串中任何一个字符的位置。
  1. 替换子串为其他子串:
  • replace(size_t pos, size_t len, const char* str, size_t strPos, size_t strLen): 用给定子串替换当前字符串中从pos开始的len个字符,成为新的子串。
  1. 反转字符串:
  • swap(string& other): 与另一个字符串交换内容。
  1. 字符串转换为大写/小写:
  • make_lower(): 将当前字符串的所有字符转换为小写。
    • make_upper(): 将当前字符串的所有字符转换为大写。
  1. 字符计数:
  • count(const char* str, size_t pos = 0) const: 返回从pos开始匹配给定字符串的次数。
  1. 查找子串并返回其长度:

* find_first_not_of(const char* str, size_t pos = 0) const: 返回第一个不匹配给定字符串中任何一个字符的位置,并返回其长度。

  1. 其他实用函数:
  • 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>件商品…...

金属压块液压打包机比例阀放大器

液压打包机是机电一体化产品&#xff0c;主要由机械系统、液压控制系统、上料系统与动力系统等组成。整个打包过程由压包、回程、提箱、转箱、出包上行、出包下行、接包等辅助时间组成。市场上液压打包机主要分为卧式与立式两种&#xff0c;立式废纸打包机的体积比较小&#xf…...

python 自动化福音,30行代码手撸ddt模块

用 python 做过自动化的小伙伴&#xff0c;大多数都应该使用过 ddt 这个模块&#xff0c;不可否认 ddt 这个模块确实挺好用&#xff0c;可以自动根据用例数据&#xff0c;来生成测试用例&#xff0c;能够很方便的将测试数据和测试用例执行的逻辑进行分离。 接下来就带大家一起…...

基于GATK流程化进行SNP calling

在进行变异检测时&#xff0c;以群体基因组重测序数据为例&#xff0c;涉及到的个体基本都是上百个&#xff0c;而其中大多数流程均是重复的步骤。 本文将基于GATK进行SNP calling的流程写入循环&#xff0c;便于批量分析。 1 涉及变量 1.工作目录work_dir/ 2.参考基因组ref…...

【Java SE】如何解读Java的继承和多态的特性?

前言 什么是继承和多态&#xff0c;为什么被称为Java三大特性&#xff0c;这两大特性为我们程序员带来了什么影响呢&#xff1f;是让复杂的代码简化了&#xff0c;还是为程序员写代码提供了多样性呢&#xff1f;那让我们一起来揭开这层神秘的面纱吧&#xff01; 1.继承 1.1为…...

uniapp 手动调用form表单submit事件

背景&#xff1a; UI把提交的按钮弄成了图片&#xff0c;之前的button不能用了。 <button form-type"submit">搜索</button> 实现&#xff1a; html&#xff1a; 通过 this.$refs.fd 获取到form的vue对象。手动调用里面的_onSubmit()方法。 methods:…...

11月20日星期一今日早报简报微语报早读

11月20日星期一&#xff0c;农历十月初八&#xff0c;早报微语早读。 1、T1以3-0横扫WBG&#xff0c;拿下S13冠军&#xff01;Faker豪取第4冠&#xff1b; 2、天舟七号货运飞船已运抵文昌发射场&#xff0c;将于明年初发射&#xff1b; 3、“中韩之战”球票已经售罄&#xf…...

Unity中 Start和Awake的区别

Awake和Start在Unity中都是MonoBehaviour脚本中的生命周期函数 Awake函数在游戏对象首次被加载时调用&#xff0c;在游戏对象初始化之前调用。 start函数在游戏对象初始化完成后调用&#xff0c;在update第一次执行前调用。 这两个函数在其生命周期内都只会调用一次&#xf…...

进度条、git常见指令以及gdb的常用指令

进度条 进度条是笔者所接触的第一个更加贴近于系统的小玩意&#xff0c;主要是要理解回车、换行、换行回车和缓冲区的概念。 回车是回到当前行的第一个光标位置&#xff0c;换行是换到下一行但是光标还在原来的位置&#xff0c;换行回车就是键盘上面的回车键是回到下一行的第…...

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版本,打造鸿蒙生态金融科技全新体验

近日&#xff0c;奇富科技率先发布鸿蒙元服务1.0版本&#xff0c;成为首家融入鸿蒙生态的金融科技公司&#xff0c;为用户带来前所未有的数字生活体验。此次与华为终端云的全面合作&#xff0c;是两大行业领军者的深度融合&#xff0c;不仅实现技术的交融&#xff0c;更彰显两大…...

【Git学习一】初始化仓库git init的使用和提交git add与git commit的使用

&#x1f601; 作者简介&#xff1a;一名大四的学生&#xff0c;致力学习前端开发技术 ⭐️个人主页&#xff1a;夜宵饽饽的主页 ❔ 系列专栏&#xff1a;Git等软件工具技术的使用 &#x1f450;学习格言&#xff1a;成功不是终点&#xff0c;失败也并非末日&#xff0c;最重要…...

Redux-状态管理组件

一、简介 react中的状态只属于某个组件。而Redux是一个全局管理js状态的架构&#xff0c;让组件通信更加容易。 之前是状态在所有组件间传递&#xff0c;而redux通过store来实现这个功能。 Redux特性&#xff1a; 1.Single source Of truth&#xff0c;通过store唯一维护状态…...

【bigo前端】egret中的对象池浅谈

本文首发于&#xff1a;https://github.com/bigo-frontend/blog/ 欢迎关注、转载。 egret是一款小游戏开发引擎&#xff0c;支持跨平台开发&#xff0c;之前使用这款引擎开发了一款捕鱼游戏&#xff0c;在这里简单聊下再egret中关于对象池的使用&#xff0c;虽然该引擎已经停止…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

基于FPGA的PID算法学习———实现PID比例控制算法

基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容&#xff1a;参考网站&#xff1a; PID算法控制 PID即&#xff1a;Proportional&#xff08;比例&#xff09;、Integral&#xff08;积分&…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解&#xff08;完整版&#xff09; 一、现代浏览器渲染流程&#xff08;详细说明&#xff09; 1. 构建DOM树 浏览器接收到HTML文档后&#xff0c;会逐步解析并构建DOM&#xff08;Document Object Model&#xff09;树。具体过程如下&#xff1a; (…...

【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验

系列回顾&#xff1a; 在上一篇中&#xff0c;我们成功地为应用集成了数据库&#xff0c;并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了&#xff01;但是&#xff0c;如果你仔细审视那些 API&#xff0c;会发现它们还很“粗糙”&#xff1a;有…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多&#xff0c;如何一步解决&#xff0c;采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集&#xff08;每个目录代表一个类别&#xff0c;目录下是该类别的所有图片&#xff09;&#xff0c;你需要进行以下配置步骤&#x…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...