C++ STL——string容器

1,string基本概念

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

string类内部封装了很多成员方法

例如:查找find,拷贝copy,删除delete,替换replace,插入insert

string管理char*所分配的内存,不用担心复制越界和取值越界等,由类内部进行负责。

2,string构造函数

string s1;//默认构造,创建一个空的字符串

string(const char* s); //使用字符串s初始化

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

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

3,string赋值操作

给string字符串进行赋值

string str;        //第一种方式,直接赋值、定义字符串strstr="hello world";        //str="a";        //也可以用单个字符给字符串赋值string str1;    //第二种str1=str;         //用str的方法给str1赋值
string str2;    //第三种
str2.assign("hello world");
string str3;    //第三种
str3.assign("hello C++",5);//将hello C++的前五个字符赋值给str3
string str4;    //第四种
str4.assign(10,"w")    //十个w

4,string字符串拼接

功能描述:实现在字符串末尾拼接字符串

例:+=

string str1="I"
str1+=“like playing Game”
cout<<str1;// I like playing game

 append函数

string str2="I";
str2.append("love");//I love 
str2.append("game abcde",4);//将game abcde前四个字符加入进来 game
cout<<str2;//I love game

5,string查找与替换

功能描述:

查找:查找指定字符串是否存在:

string str="abcdefg";
int position=str.find("de");//说明de在哪个起始位置
cout<<position<<endl;

结果:position=-1;未找到字符串

position 不等于-1:找到了字符串

find从左往右查找字符串,rfind从右往左查找字符串

替换:在指定的位置替换字符串

关键字:replace

string str="abcdefg";
str.replace(1,3,"1111");
cout<<"str="<<str<<endl;//a1111efg

6,string字符串比较

功能描述:字符串之间的比较

比较方式:字符串比较是按字符的ASCII码进行对比

=返回 0

>返回 1

<返回 -1

关键词:compare

string str1=“abe”;
string str2=“abe”;
str1.compare(str2);//0

7,string字符存取

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

通过[]方式取字符

通过at方法获取字符

[],at中间的数字相当于数组下标

string str=“abec”
for(int i=0,i<str.size,i++){
cout<<str[i]<<endl;    //a b e c 
cout<<str.at[i]<<endl;    //a b e c 

8,string插入和删除

功能描述:

对string字符串进行插入和删除字符操作

例:string str;

插入操作:str.insert (起始位置,“插入元素”)

str.insert(1,"111")//在一号字符后插入111

删除操作:str.erase (起始位置,几个字符)

str.erase(1,3)//从一号字符开始删除三个字符

总结:插入和删除的起始下标都是从0开始的

9,strig子串

从字符串中获取想要的子串,语法:str.substr(截取的起始位置,截取的终止位置)

string str="abcde";
string subStr=str.substr(1,3);
cout<<subStr<<endl;    //bcd

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

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

相关文章

串的匹配算法——KMP算法

目录 一.特点 二.算法思想 三.公式证明 四.next数组及其练习 五.找规律计算next[k] 六.代码实现 一.特点 BF算法的特点是i回退&#xff0c;KMP算法的最大特点是i不回退&#xff0c;由于i不回退&#xff0c;所以KMP算法的时间复杂度是O(nm)。 二.算法思想 在匹配主串和子…

浅谈社会工程学攻击

一、前言 1.1 社会工程学起源 社会工程学是黑客米特尼克在《欺骗的艺术》中所提出&#xff0c;其初始目的是让全球的网民们能够懂得网络安全&#xff0c;提高警惕&#xff0c;防止没必要的个人损失。但在我国黑客集体中还在不断使用其手段欺骗无知网民制造违法行为&#xff0c;…

String类,StringBuilder类,StringBuffer类

前言 String类&#xff0c;StringBuilder类&#xff0c;StringBuffer类都是java提供的定义字符串的类&#xff0c;下面是三种字符串类的异同介绍 String类&#xff1a;String类表示的字符串是是常量&#xff0c;一旦创建内容和长度都无法修改 StringBuilder类&#xff1a;St…

6个维度分析实时渲染和Webgl技术异同

在日常交流中&#xff0c;对Webgl技术熟悉的合作伙伴&#xff0c;在初次了解实时渲染技术时&#xff0c;都会问二者之间的异同。目前很多要求B/S架构的项目&#xff0c;很多在用webgl技术路线&#xff0c;而且这个方案在行业里比较普&#xff0c;业主方对这个也比较熟悉&#x…

JAVA实现图像取模

JAVA对图像取模 就是图片变成点阵 原图 取模效果图 代码如下&#xff1a; public static void main(String[] args) throws IOException {try {// 读取图像文件BufferedImage image ImageIO.read(new File("C:/Users/xiaol/Desktop/img/0.jpg"));// 定义阈值&am…

冬去春来天气阴晴不定 美食拿捏味蕾安稳换季

俗话说“春打六九头”&#xff0c;3月虽然已经入春&#xff0c;但是天气依然是凉飕飕的 &#xff0c;冬天春天的换季期&#xff0c;因为天气的变化&#xff0c;尤为痛苦。但是来到了换季期&#xff0c;天气也不总是那么稳定&#xff0c;随着气温的起伏&#xff0c;我们的食欲也…

Vue项目实战--空间论坛(1)

环境准备 安装好node.js,Vue后 添加插件 router---路由&#xff0c;多页面的应用 vuex---在多个组件之间维护同一个数据 添加依赖 bootstrap---美工 popperjs/core vue项目介绍 views-----对应vue文件&#xff0c;页面 router-----路由&#xff0c;页面&#xff0c;c…

《javascript高级程序设计》学习笔记 | 23.JSON

关注[前端小讴]&#xff0c;阅读更多原创技术文章 JSON JSON 是 JS 对象简谱&#xff0c;是一种通用的数据格式和 JS 有相同的语法&#xff0c;但不属于 JS&#xff0c;很多语言都能解析和序列化 JSON 相关代码 → 语法 JSON 支持 3 种类型的值 简单值&#xff1a;字符串、…

leetCode刷题 4.寻找两个正序数组的中位数

目录 1. 思路 2. 解题方法 3. 复杂度 4. Code 题目&#xff1a; 给定两个大小分别为 m 和 n 的正序&#xff08;从小到大&#xff09;数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法的时间复杂度应该为 O(log (mn)) 。 示例 1&#xff1a; 输入&…

1分钟带你搞定Python函数分类

python语言中&#xff0c;函数可以分为内置函数、自定义函数、有参数函数、无参数函数、有名字函数和匿名函数。其中&#xff0c;内置函数可以直接使用&#xff0c;自定义函数需要根据需求定义。有参数函数在定义时需要指定参数&#xff0c;调用时传入参数。无参数函数在定义时…

python基础 — 进制转换

1、进制引导符号 在 Python 中&#xff0c;可以使用不同的前缀&#xff08;引导符号&#xff09;来表示不同的进制。 以下是各种进制的引导符号&#xff1a; 二进制&#xff08;Binary&#xff09;&#xff1a;使用0b或0B作为前缀。例如&#xff1a;0b1010 表示二进制数 101…

SpringBoot 跨域配置

SpringBoot 跨域配置 添加配置文件 Configuration public class CorsConfig {private CorsConfiguration buildConfig() {CorsConfiguration corsConfiguration new CorsConfiguration();corsConfiguration.setAllowCredentials(true);// 设置访问源地址corsConfiguration.a…

git远程仓库使用

赋值这个地址clone 克隆之后 cd slam_oncloud/ git remote add chenxnew ssh://git192.168.3.40:1022/chenxiao/slam_oncloud.git 查看一下 linuxchenxiao:/media/linux/mydisk/cloud_slam/slam_oncloud$ git remote add chenxnew ssh://git192.168.3.40:1022/chenxiao/sla…

记录一次Dubbo远程调用的错误

情景&#xff1a;有一个生成PDF的接口中&#xff0c;如下&#xff1a; GET Path("/getPDF") public void getPDF(QueryParam("id") String id, Context HttpServletResponse response) {………… }之前实现的代码都写在了Controller里面&#xff0c;代码里…

【算法笔记】LeetCode_15_三数之和

LeetCode_15_三数之和 LeetCode 15 &#xff08;LeetCode 15) 题目描述 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复…

北斗卫星助力无人机在沙漠播种,促进沙漠治理

北斗卫星助力无人机在沙漠播种&#xff0c;促进沙漠治理 近年来&#xff0c;随着科技的不断发展&#xff0c;北斗卫星和无人机技术的结合被广泛应用于沙漠治理领域&#xff0c;为解决沙漠化问题提供了全新的思路和解决方案。 近日&#xff0c;黄河“几字弯”北岸的内蒙古自治…

《LeetCode力扣练习》代码随想录——二叉树(完全二叉树的节点个数---Java)

《LeetCode力扣练习》代码随想录——二叉树&#xff08;完全二叉树的节点个数—Java&#xff09; 刷题思路来源于 代码随想录 222. 完全二叉树的节点个数 二叉树-后序遍历 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeN…

[力扣100][好题] 121.买股票的最佳时机 || 动态规划

添加链接描述 思路&#xff1a; 设置一个动态数组dp用来存放当前最大的利润这个利润有两个来源&#xff1a;来源一是来自上一个最大利润&#xff1b;来源二是目前值减去最小买入价格如何维护最小值&#xff1f;预设一个最小值然后将这个最小值每次和当前值比较 class Solutio…

word打字后面的字消失是怎么回事

在使用Microsoft Word进行文档编辑时&#xff0c;很多用户可能会遇到一个令人困惑的问题&#xff1a;当在文档中打字时&#xff0c;后面的字却莫名其妙地消失了。这种情况不仅影响了编辑效率&#xff0c;还可能导致重要数据的丢失。那么&#xff0c;这一现象背后的原因是什么&a…

JVM3_数据库连接池虚引用ConnectionFinalizerPhantomReference引起的FullGC问题排查

背景 XOP服务运行期间&#xff0c;查看Grafana面板&#xff0c;发现堆内存周期性堆积&#xff0c;Full GC时间略长&#xff0c;需要调查下原因 目录 垃圾收集器概述 常见的垃圾收集器分区收集策略为什么CMS没成为默认收集器 查看JVM运行时环境分析快照 PhantomReference虚引用…