C++:STL容器的学习-->string

请添加图片描述

C++:STL容器的学习-->string

        • 1. 构造方法
        • 2. string的赋值操作
        • 3. string字符串的拼接
        • 4. string 查找和替换
        • 5. string字符串的比较
        • 6. string字符存取
        • 7. string 插入和删除
        • 8. string截取

需要添加头文件#include <string>

1. 构造方法

string() 创建空的字符串

string(const char *s) 使用字符串s进行初始化

string(const string& str) 使用一个string对象初始化另外一个string对象

string(int n,char c) 使用n个字符c初始化

 int main() {string str1;cout << str1 << endl;char *a = "hello world!";string str2(a);cout << str2 << endl;string str3(str2);cout << str3 << endl;char b = '1';string str4(10,b);cout << str4 << endl;return 0;}
2. string的赋值操作

string& operator = (const char *s) char*类型字符串赋值给当前的字符串

string& operator = (const string &s) 把字符串s赋值给当前的字符串

string& operator = (char c) 字符赋值给当前的字符串

string& assign(const char *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赋值给当前的字符串

int main() {string str1 = "hello world!";cout << str1 << endl;string str2;str2 = str1;cout << str2 << endl;string str3;str3.assign(str2);cout << str3 << endl;string str4;str4.assign(str3,5);cout << str4 << endl;string str5;str5.assign(10,'a');cout << str5 << endl;return 0;}
3. string字符串的拼接

string& operator+=(const char*str)

string& operator+=(const char c)

string& operator+=(const string& str)

string& append(const char *s) 把字符串s连接到当前字符串结尾

string& append(const char *s,int n) 把字符串s的前n个字符连接到当前字符串结尾

string& append(const string &s)

string& append(const string &s,int pos,int n) 字符串s中从pos开始的n个字符连接到字符串结尾

int main() {string str1;str1 += "hello c++";cout << str1 << endl;string str2 = "hello";str2.append(" c++2");cout << str2 << endl;string str3 = "hello";str3.append(str1,5,10);cout << str3 << endl;return 0;}
4. string 查找和替换

find、rfind找不到目标字符串时返回-1

int find(const string &str,int pos=0) const 查找str第一次出现位置,从pos开始查找

int find(const char *s,int pos=0) const

int find(const char *s,int pos,int n) const 从pos位置查找s的前n个字符第一次位置

int find(const char c,int pos=0) const 查找字符c第一次出现的位置

int rfind(const string &str,int pos=0) const

int rfind(const char *s,int pos=0) const

int rfind(const char *s,int pos,int n) const

int rfind(const char c,int pos=0) const

string& replace(int pos,int n,const string & str) 替换从pos开始的n个字符为字符串str

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

int main() {string str1 = "hello C++ C++";int pos = str1.find("C++");cout << pos << endl;pos = str1.rfind("C++");cout << pos << endl;cout << str1.replace(6,3,"Python")<< endl;return 0;
}
5. string字符串的比较

按字符的ASCII码进行对比
返回 0、1、-1

int compare(const string &s) const 与字符串s进行比较
int compare(const char *s) const 与字符串s进行比较

int main() {string str1 = "c++",str2 = "c++";cout << str1.compare(str2) << endl;return 0;
}
6. string字符存取

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

char& operator[](int n) 通过[]方式存取字符

char& at(int n) 通过at方式获取字符


int main() {string str1 = "hello world!";for (int i = 0; i < str1.size(); ++i) {cout << str1[i] << " " << str1.at(i)<<endl;}str1[0] = 'e';str1.at(1) = 'h';cout << str1 << endl;return 0;
}
7. string 插入和删除

string& insert(int pos,const char *s) 插入字符串

string& insert(int pos,const string& str)

string& insert(int pos,int n,char c) 在指定位置插入n个字符c

string& erase(int pos,int n) 删除从pos开始的n个字符

int main() {string str1 = "hello";str1.insert(5," C++");cout << str1 << endl;str1.insert(5,5,'1');cout << str1 << endl;str1.erase(5,5);cout << str1 << endl;return 0;
}
8. string截取

string substr(int pos,int n) const 返回由pos开始的n个字符组成的字符串

int main() {string str1 = "hello C++";cout << str1.substr(5,4) << endl;return 0;
}

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

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

相关文章

Cordova 环境部署,将 H5 打包为 Android App

Cordova 环境部署&#xff0c;将 H5 打包为 Android App 一、环境配置 1、JDK 环境变量 JAVA_HOME%JAVA_HOME%\bin 2、Android SDK 环境变量 ANDROID_HOMEANDROID_SDK_ROOT%ANDROID_HOME%\build-tools%ANDROID_HOME%\tools%ANDROID_HOME%\platform-tools 3、Node 环境…

C++学习/复习6---内存管理(数据的位置/大小)/new、delete/内存相关面试题(malloc与new/内存泄漏)

一、内存中区域 1.不同数据的存储位置 2.数据占用内存大小 二、动态内存函数 三、new与delete 1.操作内置类型 2.操作自定义类型 四、operator new与operator delete 1.底层源码&#xff08;malloc/free&#xff09; 2.内置/自定义与构造和析构 3.举例 五、定位new表达式 1.举…

使用 Django 和 RabbitMQ 构建高效的消息队列系统

文章目录 RabbitMQ 简介Django 中使用 RabbitMQ总结与拓展 在现代的 Web 应用程序开发中&#xff0c;构建一个高效的消息队列系统变得越来越重要。使用消息队列可以帮助我们解耦系统中不同模块的任务&#xff0c;并提高系统的性能和可扩展性。本文将介绍如何结合 Django 和 Rab…

5.27背单词

formula 公式 conviction 定罪 mischief 恶作剧 counsel 律师 overt 明显的 contagious 有传染性的 dwelling 住所 subtle 不明显的 hazard 危险 vicinity 附近地区 host 大量 dinosaur 恐龙 glamor 魅力 slack 松弛的 gigantic 巨大的 exquisite 精致的 bloody 血的 disastrou…

LeetCode994腐烂的橘子

题目描述 在给定的 m x n 网格 grid 中&#xff0c;每个单元格可以有以下三个值之一&#xff1a;值 0 代表空单元格&#xff1b;值 1 代表新鲜橘子&#xff1b;值 2 代表腐烂的橘子。每分钟&#xff0c;腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。返回 直到单元格中没…

C++ std::reference_wrapper:让引用更强大

std::reference_wrapper 的通俗易懂解释 一、简介二、std::reference_wrapper 的初衷三、常用示例3.1、与 make_pair 和 make_tuple 一起使用3.2、引用容器3.3、通过 std::thread 按引用传递参数给启动函数3.4、引用作为类成员3.5、按引用传递函数对象3.6、与绑定表达式一起使用…

重新安装 Windows 10/11 后如何恢复丢失的数据?

“嗨&#xff0c;我的 Windows 10/11 崩溃了&#xff0c;所以我不得不重新安装它。我使用 USB 可启动驱动器重新安装了操作系统。但是&#xff0c;重新安装后&#xff0c;C 盘上的所有先前文件都丢失了。有什么方法可以恢复丢失的文件吗&#xff1f;” - 孙雯 在大多数情况下&…

软考 系统架构设计师系列知识点之SOME/IP与DDS(3)

接前一篇文章&#xff1a;软考 系统架构设计师系列知识点之SOME/IP与DDS&#xff08;2&#xff09; 本文内容参考&#xff1a; 车载以太网 - SOME/IP简介_someip-CSDN博客 https://zhuanlan.zhihu.com/p/369422441 什么是SOME/IP?_someip-CSDN博客 SOME/IP 详解系列&#…

C语言自定义类型:结构体 枚举 联合

结构体 struct stu {char name[20];int age; }s1,s2; //s1,s2是全局变量int main() {struct stu s3; //s3是局部变量return 0; }匿名结构体类型 只能用一次 struct {char name[20];int age; }s1; 以下两种写法相同 //1 typedef struct node {int data;struct node* next; …

编程文档模板

项目名称 { XXX编程文档} 1. 模块A 提示&#xff1a;开发人员根据“编程计划”编写软件的代码&#xff0c;并随时记录编程技术、问题与对策、心得体会等等&#xff0c;产生《编程文档》&#xff08;类似于编程日记&#xff09;。 程序名称功能描述开发者记录编程技术、问题…

day16--集合进阶(Set、Map集合)

day16——集合进阶&#xff08;Set、Map集合&#xff09; 一、Set系列集合 1.1 认识Set集合的特点 Set集合是属于Collection体系下的另一个分支&#xff0c;它的特点如下图所示 下面我们用代码简单演示一下&#xff0c;每一种Set集合的特点。 //Set<Integer> set ne…

【构建基础:打造你的第一个深度神经网络】

文章目录 前言深度神经网络的基础你的第一个神经网络分析代码结论 前言 深度学习已经成为了当代技术进步的先锋&#xff0c;它的成功依赖于深度神经网络&#xff08;DNN&#xff09;的强大能力。对于初学者来说&#xff0c;理解并构建一个基础的深度神经网络是学习之旅的重要一…

数组-两个升序数组中位数

一、题目描述 二、解题思路 (一).基本思想&#xff1a; 如果列表总长度allsize( arr1.size()arr2.size() ) 为奇数时&#xff0c;中位数位置应该在两个列表排序后的第 allsize/2 位置处&#xff0c;如果allsize为偶数&#xff0c;中位数应该取 (allsize/2)-1 和 allsize/2 的…

利用java写的java.util.concurrent.Delayed 类 配合线程实现延迟队列处理方案

直接分享代码 package com.xxx.init.delayJob;import lombok.Data;import java.util.concurrent.Delayed; import java.util.concurrent.TimeUnit;/*** User:Json* Date: 2024/5/15* java 内置的延迟队列* 服务器重启后&#xff0c;数据全部消失&#xff0c;怕宕机* 他是无界队…

Scala的简单学习二

一集合 1.1 Java集合 1.在scala创建Java集合需要导入java.util包 2.不能使用scala中遍历迭代器的方法遍历Java集合 3.使用下标索引遍历Java集合 4.list集合中&#xff0c;add是添加元素(可以指定下表索引插入)&#xff0c;get是通过下标索引获取元素&#xff0c;size是获取…

【Python】 如何在Python中设置环境变量?

基本原理 在Python中&#xff0c;环境变量是一种存储系统或应用程序配置信息的方式&#xff0c;它们可以被操作系统或应用程序访问。环境变量通常用于配置应用程序的行为&#xff0c;例如指定数据库的连接字符串、API密钥、文件路径等。 Python提供了几种方法来设置和访问环境…

心电信号降噪方法(滤波器/移动平均/小波等,MATLAB环境)

对于一个正常的、完整的心动周期&#xff0c;对应的心电图波形如下图所示&#xff0c;各个波形都对应着心脏兴奋活动的生理过程&#xff0c;包含P波&#xff0c;PR段&#xff0c;QRS波群&#xff0c;ST段&#xff0c;T波&#xff0c;U波。 &#xff08;1&#xff09;P波心电图中…

OpenBMC相关的网站

openbmc官方网站 https://github.com/openbmchttps://github.com/openbmc Dashboard [Jenkins]https://jenkins.openbmc.org/ https://gerrit.openbmc.org/Gerrit Code Reviewhttps://gerrit.openbmc.org/ Searchhttps://grok.openbmc.org/ openbmc参考网站 https://www.c…

R实验 正交试验设计与一元线性回归分析

实验目的&#xff1a; 掌握正交试验设计记号的意义&#xff1b;掌握正交试验设计的直观分析和方差分析&#xff1b;掌握一元线性回归模型的相关概念&#xff1b;掌握最小二乘法的思想&#xff1b;掌握一元线性回归方程的显著性检验和预测。 实验内容&#xff1a; &#xff11;…

C++ day1 作业练习

整理思维导图 定义自己的命名空间my_sapce&#xff0c;在my_sapce中定义string类型的变量s1&#xff0c;再定义一个函数完成对字符串的逆置。 #include <iostream> #include <cstring>using namespace std; namespace my_space {string s1; }void show() {cout<…