【C++编程】字符串 string 容器基本操作

【C++中的STL】string字符串容器 2、string管理char *所分配的内存,不用担心复制越界和取值越界等,由类内部进行负责。string是一个类,类内部封装了char *,管理这个字符串,是一个char *型的容器。1、string();string是C++风格的字符串,而string本质上是一个类。把字符串s中从pos开始的n个字符连接到当前字符串结尾。把字符串s的前n个字符连接到当前字符串结尾。把字符串s的前n个字符赋值给当前的字符串。从pos查找s的前n个字符最后一次出现的位置。从pos查找s的前n个字符第一次出现的位置。 阅读详情

构造 string 的四种方法:

#include<iostream>
#include<string.h>
		
using namespace std;
		
		 
int main()
{
   // 1. 同时展示常用的赋值操作
   string s1;
   s1 = "hello world";             // 赋值 hello world
   s1.assign("hello world");	   // 赋值 hello world
   s1.assign("hello world", 2);    // 赋值 he
   s1.assign(10, "a",);            // 赋值 aaaaaaaaaa
   // 2.
   const char *str = "hello world";
   string s2(str);      // hello world
   // 3.
   string s3(s1);       // hello world
   // 4.
   string s4(10, 'a');  // "aaaaaaaaaa"
		
   return 0; 
}

🌸字符串拼接、截取、删除、插入:+= 或 append, substr,erase,insert

// 拼接
string s1 = "a";	    		// "a"          
s1 += "bc";             		// "abc"
s1.append("def");       		// "abcdef"
s1.append("ghij", 3);   		// "abcdefghi"

// 截取
string s2 = s1.substr(1, 2);	// “bc”, 从idx-1开始的2个
// 删除
string s2 = s1.erase(1, 2);		// “adefghi”,删除 “bc”

// 插入
string s3 = s1.insert(1, "bc");	// "abcdefghi", 从idx-1开始插入 "bc"

🌸字符串长度获取:length 或 size

string s1 = "abcdef";
cout << s1.length() << endl; 	// 6
cout << s1.size() << endl; 		// 6

🌸字符串查找与替换:find 和 replace

string s1 = "abcdef";         
cout << s1.find("de") << endl;  // 3 -> 找到,位于 index 3  
cout << s1.replace(1, 2, "1111") << endl;  // a1111def  ->  bc(从idx-1开始的2个) 替换为 1111

🌸字符串排序:sort

// 需要头文件 #include <algorithm>
string s1 = "acbfde";
sort(s1.begin(), s1.end());  // abcdef

【博客参考链接】
【黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难】

C++ 语法 - 15. STL - string容器 - 详解 【代码】C++ 语法 - 15. STL - string容器 - 详解。 阅读详情

相关推荐

LaTeX参考文献格式apsrev4-1,增加文献标题

APS的LaTeX参考文献格式apsrev4-1是隐藏标题的,如果想要出现标题,需要更改apsrev4-1.bst文件内容 在apsrev4-1.bst文件靠后部分,定义不同类型文献格式的地方,将article类型的内容替换为, FUNCTION {article} { output.bibitem format.authors booktitle empty$ { "author" output.check }{ output } if$ author format.

loading1234567的博客 5032

C++ STL与string

C++ STL与string 1. stack #include <stack> //包含头文件 stack<char> s; //声明一个char类型的栈 s.push('#'); //入栈 s.pop(); //出栈 optr1 = s.top(); //返回栈顶元素 s.empty() == true //判空 len = s.size(); //返回栈中元素个数 2. queue #include<queue> //包含头文件 queue<char

as_your_heart的博客 194

Zabbix7.0实践:专线线路监控场景1

本文介绍了专线互联线路远程Ping监控的实现方案。针对运营商中间设备导致端口状态无法真实反映线路通断的问题,提出通过脚本执行端到端Ping检测的方案。具体实现包括:1)使用Expect脚本登录设备执行Ping测试并格式化结果;2)通过Shell脚本处理线路信息并生成JSON格式数据;3)配置Zabbix监控系统,创建自动发现规则和监控项原型,实现线路状态的自动监控。该方案适用于专线数量不多但重要的场景,能够有效检测中间有运营商设备的专线线路通断状态,最终在Zabbix中实现可视化的告警展示。

2301_80016499的博客 781

【ACWing 算法基础】C++ STL 容器简介

【ACWing 算法基础】C++ STL 容器简介。

m0_51139226的博客 211

大彩串口屏+LUA避坑指南:从Flash读写到控件状态配置的5个常见问题

本文针对大彩串口屏的LUA脚本开发,深度剖析了Flash数据存储与控件状态配置中的5个常见陷阱。重点讲解了如何通过标志位安全初始化Flash、正确处理多字节数据转换,以及如何精准配置按钮与文本控件的状态与事件响应,帮助开发者提升开发效率与代码可靠性。

weixin_27945229的博客 244

用CesiumLab2+nginx零成本构建三维地形服务:从DEM数据到浏览器渲染全流程

本文详细介绍了如何利用CesiumLab2和nginx零成本构建私有三维地形服务的完整流程。从获取DEM数据、使用CesiumLab2进行格式转换,到配置nginx服务器并重点解决跨域问题(Access-Control-Allow-Origin),最终实现在Cesium中流畅加载与渲染自定义地形,为内网或涉密项目提供了高性价比的解决方案。

weixin_29300931的博客 117

<C++>详解string容器,揭开string容器的神秘面纱

书接上文,初始STL之后我们来学习最常见的一个引用类型——string容器,学习string容器的构造、以及C++API中String类的常用方法,让我们一起来看看我们一直在用的字符串String的真面目吧!

叶落秋白的博客 2256

保边滤波之Mean shift filter

保边滤波之Mean shift filter 目录 保边滤波之Mean shift filter 一、算法原理 二、练手实现的算法代码如下: 三、实现结果 一、算法原理 在OpenCV中,meanshift filter函数为 p...

大熊 1561

C++ 带你吃透string容器的使用

C++ 带你吃透string容器的使用和常见的应用场景

Wzs040810的博客 2576

【教程4>第10章>第13节】基于FPGA的图像双边滤波开发——单通道双边滤波Verilog实现

本文介绍了基于Vivado 2022.2的单通道高斯滤波FPGA实现方案。主要内容包括:1)采用3×3窗口像素提取、高斯权值计算、exp指数运算等模块构建双边滤波系统;2)详细分析了Verilog HDL实现的顶层设计文件,包含窗口数据生成、指数计算、混合权重、归一化处理等关键模块;3)展示了图像双边滤波器的RTL结构图。该设计为后续实现RGB三通道图像高斯滤波及MATLAB联合仿真奠定了基础。

FPGA/MATLAB学习教程/源码/项目合作开发 264

【即插即用模块】Transformer篇 | TCSVT 2025 | DAFM:双注意力聚合+反向跨模态筛选,特征精准捕捉并融合!

本文提出了一种双模态注意力融合模块(DAFM),用于增强多模态图像融合任务中的特征交互。该模块通过双注意力聚合机制,结合自注意力与跨模态注意力,有效提升特征融合效果。DAFM采用可学习平衡因子动态调整注意力权重,并运用深度卷积降低计算复杂度。实验结果表明,该模块能显著提升多模态图像融合质量,适用于RGB-红外等双模态视觉任务。模块代码实现简洁,可直接集成到现有网络中作为特征融合层使用。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 176

C++string容器

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

2301_80950699的博客 1675

【人工智能】Claude服务访问受限报错的技术分析与解决方案

在使用Claude系列大模型服务的过程中,部分用户会遇到服务不可用的标准化拦截提示,导致无法正常访问模型核心能力。本文针对该类报错进行完整技术拆解,明确报错根因与底层校验逻辑,并分场景提供合规、可落地的排查与解决方案,同时规避相关使用风险。

奶爸的编程之路,也就一周冷个三天 2678

【C++】STL容器-string的遍历

在C++的标准模板库(STL)中,string作为一种常用的容器,扮演着存储和操作字符串的重要角色。本文将深入探讨STL中string容器的遍历方法,包括使用迭代器、指针、范围for循环以及std::for_each算法等多种方式。通过具体示例和代码实践,读者将能够熟练掌握string容器的遍历技巧,并在实际编程中灵活运用。

池央的博客 3890

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

C++提高编程——STL:string容器、vector容器

灵活的运用求子串功能,可以在实际开发中获取有效的信息。

weixin_63866037的博客 1376

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

C++容器-- string容器常用操作

/ 初始化string s1;//创建空字符串,调用无参构造函数//调用拷贝构造函数// 使用10个字符初始化'a'// 赋值// 把单个字符赋值给str3// 把hello前3个字符赋值给str5// 把str5赋值给str6// 把5个x赋值给str7// 字符串拼接// 从str2下标为2的位置开始,截取3个字符拼接在str4的尾部// 查找// 找到返回第一个字符下标,未找到返回-1// 从下标2开始查找“lo”第一次出现的位置。

今天不加班 1701

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

C++提高编程——STL-常用容器——string容器

特点:string类内部封装了很多成员方法例如:查找find,拷贝copy,删除delete,替换replace,插入insertstring管理char*所分配的内存,不用该担心复制越界和取值越界等,由类内部进行负责。

qq_2725的博客 1887

C++——string容器常用操作汇总

本篇文章📃对string类的常用操作进行汇总,总共12个大类,分别是构造和析构函数、特性操作、字符操作、赋值操作、连接操作、交换操作、截取操作、比较操作、查找操作、替换操作、删除操作。前七个既可以用作字符串也可以用于存放数据的容器,而后五个(判断字符串是否相等、查找、替换、插入、删除)主要用于操作字符串,如果是其他格式的数据,这些函数也可以用,但意义不大。string容器可以看做一片连续的储存空间,有两个用途,一是用作字符串,二是用作存放数据的容器

阿标de杂货铺 1670

C++核心编程之STL_string容器

C++核心编程之string容器,基本概念,构造函数等知识

嵌入式小程同学的博客 1469

C++STL容器详解——string

s1构造了一个空的string对象,s2构造了一个"hello",s3复制了s2的前两个字符,s4为一个拷贝构造,s5,s6时从一个位置开始复制几个字符,当复制的字符个数超过字符串时也不会报错,而s7中的npos在文档中的说明为。我们可以看到capacity逐渐增大,但是会有浪费,在这里是因为插入的少一些所以浪费不多,若是数据较大,浪费的会较多,那么是否有其他方式扩容?我们可以看到没有增容,reserve()的作用是直接开出一个特定大小的空间,但是其实并不一定是100,应为需要存放\0,会多开一些空间。

未知陨落的博客 2737

C++常用容器-string容器

string管理char*所分配的内存,不用担心复制越界和取值越界等,由类内部进行负责。总结:字符串对比主要是用于比较两个字符串是否相等,判断谁大谁小的意义并不是很大。总结:string字符串中单个字符存取有两种方式,利用 [ ] 或 at。**总结:**灵活的运用求子串功能,可以在实际开发中获取有效的信息。总结:string的多种构造方式没有可比性,灵活使用即可。总结:字符串拼接的重载版本很多,初学阶段记住几种即可。**总结:**插入和删除的起始下标都是从0开始。​ string的赋值方式很多,

m0_74863573的博客 1058

C++ STL 之 string容器-API函数

C++ STL string容器简介、常用API函数:构造、插入删除、赋值、拼接、查找替换、数据存取、字符串比较、sting类型转换为C语言风格;函数:append();compare();at();operator[];insert(); erase(); substr();c_str();

weixin_45925859的博客 1730

C++ String容器的基本操作

C++ String容器 目录C++ String容器初始化拼接查找和替换比较子串/插入和删除 初始化 string s1; //无参构造 string s2(5, 'x'); //5 个 x string s3("Hello World"); //Hello World string s4(s3); //拷贝构造 拼接 string s = "abc"; string s2 = "...

Jancoyan 472

【C++入门到精通】C++入门 —— string类(STL)

本文以STL(Standard Template Library)和string类为主题,介绍了STL的概念、内容和使用前提。针对string类,详细探讨了它的定义、特点和常见操作,包括构造和初始化、字符串大小和容量、字符访问和修改、字符串连接和拼接、子串操作、字符串比较、字符串修改、获取字符的ASCII码,以及字符串大小写转换等。通过这些内容,读者将了解STL和string类的基本概念并掌握其常用操作,从而更有效地处理和操作字符串。

Yawesh的博客 1426

【c++篇】C++STL容器之string

本文详细解析了 C++ string 类的常见构造方法、容量操作、字符访问、字符串的拼接、查找、比较,删除等操作。

2301_80951974的博客 938

【C++】STL容器--string的使用

string类的使用

2402_84357324的博客 2006
上一篇: 【C++ 提高编程】- 泛型编程之模板(类型参数化)
下一篇: 【C++编程】vector 存放内置、自定义数据类型
CODE_RabbitV
博客等级 码龄7年 2931粉丝 218原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值