STL - string

如何在 Windows 11 上安装 ChatGPT:CMD + 图形界面两种方式 我没说在 Windows 11 上装 ChatGPT 应用有多难,但你要是知道有哪几种官方途径可用,事情就会顺一点,尤其是对新手。对大多数用户来说,商店应用就是正确的选择。如果你在受管理的设备上,或者想避开商店,那么通过 Edge 或 Chrome 装 PWA 是完全站得住脚的替代方案。不管你选哪条路,真正的收获都是把 ChatGPT 从浏览器标签页里挪出来,放进一个它真正像个工具的地方。把它固定到任务栏、配好 Alt + 空格,你就会纳闷以前没它是怎么干活的。 阅读详情

String 用法小结

头文件:<string>

声明:

string s;//声明一个string 对象
string ss[10];//声明一个string对象的数组

 

初始化:

使用等号的初始化叫做拷贝初始化,不使用等号的初始化叫做直接初始化。

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 
 4 int main()
 5 {
 6     ios::sync_with_stdio(false);
 7     string s;//默认初始化,一个空字符串
 8     string s1("ssss");//s1是字面值“ssss”的副本
 9     string s2(s1);//s2是s1的副本
10     string s3=s2;//s3是s2的副本
11     string s4(10,'c');//把s4初始化
12     string s5="hiya";//拷贝初始化
13     string s6=string(10,'c');//拷贝初始化,生成一个初始化好的对象,拷贝给s6
14 
15     //string s(cp,n)
16     char cs[]="12345";
17     string s7(cs,3);//复制字符串cs的前3个字符到s当中
18 
19     //string s(s2,pos2)
20     string s8="asac";
21     string s9(s8,2);//从s2的第二个字符开始拷贝,不能超过s2的size
22 
23     //string s(s2,pos2,len2)
24     string s10="qweqweqweq";
25     string s11(s10,3,4);//s4是s3从下标3开始4个字符的拷贝,超过s3.size出现未定义
26     return 0;
27 }

 

相关操作:

常用:

1 str.size();//返回字符串长度
2 str.length();//返回字符串长度
3 str.empty();//检查 str 是否为空,为空返回 1,否则返回 0
4 str[n];//存取 str 第 n + 1 个字符
5 str.at(n);//存取 str 第 n + 1 个字符(如果溢出会抛出异常)

 

运算符重载

1、+ 和 +=:连接字符串
2、=:字符串赋值
3、>、>=、< 和 <=:字符串比较(例如a < b, aa < ab)
4、==、!=:比较字符串
5、<<、>>:输出、输入字符串

 

Insert 插入操作

 1 // inserting into a string
 2 #include <iostream>
 3 #include <string>
 4 
 5 int main ()
 6 {
 7     std::string str="to be question";
 8     std::string str2="the ";
 9     std::string str3="or not to be";
10     std::string::iterator it;
11 
12     // used in the same order as described above:
13     str.insert(6,str2);                
14     // to be (the )question  在 str 的第 6 个位置插入 str2
15     
16     str.insert(6,str3,3,4);             
17     // to be (not )the question 在 str 的第 6 个位置 插入 str3 的子串(从str3第三开始,长度为 4)
18     
19     str.insert(10,"that is cool",8);    
20     // to be not (that is )the question 在 str 的第 10 个位置插入 “****” 的子串 (从头开始,长度为 8)
21     
22     str.insert(10,"to be ");            
23     // to be not (to be )that is the question 在 str 的第 10 个位置插入 “****”
24     
25     str.insert(15,1,':');               
26     // to be not to be(:) that is the question 在 str 的 第 15 个位置插入 1个 ';'
27     
28     it = str.insert(str.begin()+5,','); 
29     // to be(,) not to be: that is the question
30     // 在 str 的第 5 个位置 插入 ',' 并返回新插入的 ','的迭代器(这里即指向 str 的第 5 位)
31     
32     str.insert (str.end(),3,'.');       
33     // to be, not to be: that is the question(...) 在 str 的末尾 插入 3 个 '.'
34     
35     str.insert (it+2,str3.begin(),str3.begin()+3);
36      // (or ) 在 str 的第 7 位插入 str3 的子串
37 
38     std::cout << str << '\n';
39     return 0;
40 }

 

查找操作:

 1 string str;
 2 cin >> str;
 3 
 4 str.find("ab");//返回字符串 ab 在 str 的位置
 5 str.find("ab", 2);//在 str[2]~str[n-1] 范围内查找并返回字符串 ab 在 str 的位置
 6 str.rfind("ab", 2);//在 str[0]~str[2] 范围内查找并返回字符串 ab 在 str 的位置
 7   
 8 //first 系列函数
 9 str.find_first_of("apple");
10 //返回 apple 中任何一个字符首次在 str 中出现的位置
11 
12 str.find_first_of("apple", 2);
13 //返回 apple 中任何一个字符首次在 str[2]~str[n-1] 范围中出现的位置
14 
15 str.find_first_not_of("apple");
16 //返回除 apple 以外的任何一个字符在 str 中首次出现的位置
17 
18 str.find_first_not_of("apple", 2);
19 //返回除 apple 以外的任何一个字符在 str[2]~str[n-1] 范围中首次出现的位置
20 
21 //last 系列函数
22 str.find_last_of("apple");
23 //返回 apple 中任何一个字符最后一次在 str 中出现的位置
24 
25 str.find_last_of("apple", 2);
26 //返回 apple 中任何一个字符最后一次在 str[0]~str[2] 范围中出现的位置
27 
28 str.find_last_not_of("apple");
29 //返回除 apple 以外的任何一个字符在 str 中最后一次出现的位置
30 
31 str.find_last_not_of("apple", 2);
32 //返回除 apple 以外的任何一个字符在 str[0]~str[2] 范围中最后一次出现的位置
33 
34 //以上函数如果没有找到,均返回string::npos
35 cout << string::npos;

 

子串:

1 str.substr(3); //返回 [3] 及以后的子串
2 str.substr(2, 4); //返回 str[2]~str[2+(4-1)] 子串(即从[2]开始4个字符组成的字符串)

 

替换:

1 str.replace(2, 4, "sz");//返回把 [2]~[2+(4-1)] 的内容替换为 "sz" 后的新字符串
2 str.replace(2, 4, "abcd", 3);//返回把 [2]~[2+(4-1)] 的内容替换为 "abcd" 的前3个字符后的新字符串

 

删除:

str.erase(3);//删除 [3] 及以后的字符,并返回新字符串
str.erase(3, 5);//删除从 [3] 开始的 5 个字符,并返回新字符串

 

交换:

1 str1.swap(str2);//把 str1 与 str2 交换

 

数值转换:

to_string(val)       把val转换成string
stoi(s,p,b)       把字符串s从p开始转换成b进制的int
stol(s,p,b)       long
stoul(s,p,b)     unsigned long
stoll(s,p,b)       long long
stoull(s,p,b)     unsigned long long
stof(s,p)        float
stod(s,p)         double
stold(s,p)         long double

毕设分享|基于16单片机的指纹识别电子密码锁设计 我们今天的工作生活中,很多的场合都需要身份的认证,而传统的基于标志的身份认证技术由于受到证件伪造以及密码破解等手段的威胁,逐渐表现得有些力不从心。怎样保护自己的重要文件资料,如何保证自己的隐私不被泄露?在传统的身份认证中,我们往往使用密码加密法,但是这种方法只是"防君子不防小人"。在高明的黑客眼里,由几个字符组成的密码脆弱得不堪一击。现在,科技的发展让我们有了新的选择——生物识别技术。将生物识别技术应用于笔记本、门锁等方面,可以对文件、财产起保护作用,并且可以进行身份识别。 阅读详情

相关推荐

Ubuntu双系统开机黑屏?3分钟搞定NVIDIA显卡驱动冲突(18.04/20.04实测有效)

本文详细解决Ubuntu双系统开机黑屏问题,特别是由NVIDIA显卡驱动冲突引起的故障。提供从临时进入系统到永久安装专有驱动的完整方案,适用于Ubuntu18.04/20.04用户,帮助快速恢复系统并优化显卡性能。

resnet7explorer的博客 311

java.lang.String.mod() is applicable for argument types: (java.lang.Integer) values: [2]

整合shardingjdbc进行分库分表操作,保存操作时候报错: insert into t_order_item ( id,order_id, user_id ) values ( ?, ?, ? ) ### Cause: groovy.lang.MissingMethodException: No signature of method: java.lang.String.mod() is applicable for argum

qq_40088575的博客 4597

CVPR 2027 投稿规划:基于近3年录用率与截稿周期的5步时间管理法

本文为计算机视觉研究者提供CVPR 2027投稿的完整规划指南,基于近三年录用率与截稿周期数据,提出五步时间管理法。涵盖选题策略、实验设计、论文写作、同行评审到最终提交的全流程优化,特别针对CVPR日益激烈的竞争环境(2024年投稿量达11532篇,录取率仅23.6%)提供实用解决方案,帮助研究者提升投稿成功率。

weixin_34079177的博客 1169

java.lang.String.mod() is applicable for argument types: 解决方法

网上有 说是拼接语句,研究groxy出现的,+后面多了个空格。 后面发现,自己并不是这个问题,出现在属性 的int和string,不对应的问题上,改成和数据库相同变量类型 ...

weixin_44377911的博客 1万+

全国职业院校技能大赛-大数据应用赛项-数据挖掘-01

-----------------------推荐Top5结果如下--------------------------------------------第一条数据前10列结果展示为:----------------------------------------相同种类前10的id结果展示为:--------------------相似度top5(商品id:14,平均相似度:0.522356)相似度top1(商品id:1,平均相似度:0.983456)若属于该spu_id,则内容为1否则为0。

Eternity_04的博客 1956

【编号326】全国地灾数据全国25万多个地质灾害点空间分布数据

全国地质灾害点分布数据涵盖25万多个各类灾害点信息,为灾害防治提供重要依据。通过分析灾害分布规律,可识别高风险区,指导监测预警、应急避险和基础设施建设。多地成功案例(如湖北兴山崩塌避险、重庆长寿滑坡预警、湖南"挪床行动")证明,提前预警和科学防治能有效避免人员伤亡。云南省2024年通过预警体系成功避让31起灾害,保护1342人生命安全。这些实践表明,地质灾害防治需结合科技手段与群防体系,实现早预警、早处置。

千奇百怪无奇不有 1474

【hdu 7013】String Mod (单位根反演)

题目链接 题目大意 求长度为 L(≤1018)L(\le 10^{18})L(≤1018) 的,由前 kkk 个小写字母构成的,‘a’ 的个数 ≡i(modn)\equiv i\pmod n≡i(modn),‘b’ 的个数 ≡j(modn)\equiv j \pmod n≡j(modn) 的字符串个数。 思路 Aij=∑l−i≡m−j≡0(modn)[xlym](k−2+x+y)L=∑l≡m≡0(modn)[xlym](k−2+x+y)L−i−jA_{ij}=\sum_{l-i\equiv m-j\equi

qq_47903865的博客 176

蓄热式加热炉燃烧技术

蓄热式加热炉燃烧技术

weixin_37928884的博客 2735

STL容器之string类

STL容器之string类

Xpccccc的博客 1138

MATLAB应用实战系列(四十三)-基于MATLAB的光伏并网系统仿真设计

在Matlab中建立光伏电站接入系统模型,包括光伏发电逆变器及负荷模型等,仿真分析接入点处的电能质量,实现高品质并网运行。 壹 构建太阳能电池模型。 初始化参数如下图所示。 贰 构建MPPT控制模型。 具体封装如下所示: 通过PWM算法实现DC-DC稳步输出最大点。 叁 三、构建直流短距离输电线路。 仿真模型如下图: 通过电容来均衡线路电压,使得线路电压保持可靠性。 肆 通过逆变器变换,使得直流线路转换成...

wenyusuran的专栏 3172

YOLOv11涨点改进 | 全网独家首发、特征融合创新篇 | ACM 2025顶会 | 引入DAAttn差异感知注意力融合模块,通过动态调整注意力,使模型更准确地识别关键内容,提高精度、并减少冗余计算

本文提出了一种基于DAAttn(差异感知注意力融合)模块改进的YOLOv11模型,用于提升变化检测任务的性能。DAAttn模块通过动态加权特征差异,有效区分有意义变化与噪声(如光照、天气变化),显著提高了模型在复杂场景下的检测精度。该模块采用反转注意力机制,重点关注显著差异区域,同时减少计算冗余。实验表明,改进后的模型在保持计算效率的同时,能够更准确地识别小目标和细节变化。文章详细介绍了DAAttn的原理、优势、实现代码及其在YOLOv11中的集成方法,并提供了两种改进配置方案。

Ai缝合怪、助力小伙伴高效发论文 303

【STL】string详解

string详解,包括多种初始化方式,遍历方法及常用函数接口的使用

2401_85304329的博客 1998

【微服务】SpringBoot 整合 FastExcel 实现导入导出操作详解

SpringBoot 整合 FastExcel 实现导入导出操作详解

congge 4236

STL 容器详解——string 类

带你一命通关C++的STL容器 十分钟手撕 string 类

qq_61500888的博客 3679

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

【c++】STL--string

讲解非常详细,欢迎大家观看!

includeevey的博客 3807

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【C++】STL简介 及 string的使用详解

STL简介 及 string的使用讲解

m0_70980326的博客 4007

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

c++ STL 之 string

本文介绍了C++中string类的基本用法。首先解释了string的本质是动态字符数组,末尾以'\0'结尾,并对比了string与vector<char>的异同。然后详细介绍了string的7种常见操作:1)初始化和赋值,支持多种输入方式;2)拼接操作,可通过运算符或函数实现;3)字符串比较的两种方法;4)随机访问和size()函数;5)插入与删除操作;6)查找与替换功能;7)获取子串的方法。最后展示了如何利用这些方法处理实际问题,如统计子串出现次数等。文章内容实用,可作为string类的快速参

searcon的博客 734

C++:STL和string

STL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的 组件库,而且是一个包罗数据结构与算法的软件框架。

2401_88251472的博客 1034

【C++】简述STL——string类的使用

string类的使用

f_2789889770的博客 1440

【剖析STL】String

String中各个函数和细节的讲解

一个喜欢猫咪的程序员 869

STL前言篇之string

STL前言篇之string 一.关于stl 二.string类的使用 三.模拟stl库中string类的实现 四.拓展--vs和g++下string类的实现

Steve__evetS的博客 879

【STL】string类

string 类是 C++ 标准库提供的一个类,用于处理字符串。它是基于模板的容器类,不仅可以对对字符串进行各种操作,比如插入、删除、查找、连接等,还负责自动管理字符串内存,具有动态大小调整的能力。

jmlangel_的博客 813

C++“STL之String”

hello ,大家又来跟着bear学习了。一起奔向更好的自己。本节最重要的就是使用string的一些功能,要多试试结合着文档使用功能。是C++标准库的重要组成部分,不仅仅是一个可以重复利用的组件库,而且还是一个包含数据结构与算法的软件框架一共给我们提供了七个。1是无参构造(重点)2是拷贝构造(重点)3是从pos位置拷贝npos个字节4用于拷贝C语言风格的字符串(重点)5用于拷贝C语言风格字符串n个6用于拷贝n个相同的字符c7使用了一个模板输出迭代器来实现(从first到last)构造。

2302_80867815的博客 2354

C++STL——String类

C++String类的常用接口

达瓦打不过来学习 1598

STL之string

string框架逻辑

yzy521wjm的博客 654

【C++深入浅出】STL之string用法详解

从本期开始,我们将进入STL的学习。STL(standard template libaray - 标准模板库)是C++标准库的重要组成部分。其不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。本期我们将要来学习一下STL中的string类,对比一下string和我们之前学习的常量字符串有什么区别。本文的重点在于使用,目标是掌握一些string类的常用接口函数并学会如何使用。之后我们会尝试模拟实现一个string类,理解string的底层实现原理。

忆梦初心的博客 4990
上一篇: poj 1159 Palindrome 【LCS】
下一篇: STL - bitset
莜莫oO
博客等级 码龄9年 7粉丝 226原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值