【C++】速识string

一、创建string对象

1、文档

2、常用 

并不是所有的用法都需要熟记于心,我们只需记住常用的即可,对于并不常用的,我们可以在用到的时候查看文档学习使用。 

void Test1()
{string s1;string s2("Hello World");s1 = "Hello World";//从第六(从0开始计算)个位置开始,打印5个string s3(s1, 6, 5);cout << s1 << " " << s3 << endl;string s4(s1, 6);cout << s4 << endl;string s5(s1, 6,s1.size() - 6);cout << s5 << endl;string s7(10, 'a');cout << s7 << endl;}

二、运算符重载

1、[]

(1)文档

(2)使用  

对于string,我们可以像对数组那样,使用[],即通过下标的方式,来读写string中的内容。

void Test2()
{string s1 = "Hello World";for (int i = 0; i < s1.size(); i++){cout << s1[i] << " ";}cout << endl;for (size_t i = 0; i < s1.size(); i++){s1[i]++;}for (int i = 0; i < s1.size(); i++){cout << s1[i] << " ";}cout << endl;s1[0] = 'A';cout << s1 << endl;
}

 

 2、+

(1)文档

(2)使用

string类对象可+string类对象/字符串/单个字符

void Test8()
{string s1 = "aaaaa";string s2("Hello World");cout << s2 << endl;cout << s1 << endl;string s3 = s1 + s2;cout << s3 << endl;s3 = s2 + "你好";cout << s3 << endl;s3 = s1 + 'b';cout << s3 << endl;
}

3、+=

(1)文档

(2)使用

与+类似。

void Test8()
{string s1 = "aaaaa";string s2("Hello World");cout << s1 << endl;cout << s2 << endl;s1 += " ccccc";cout << s1 << endl;s2 += 'x';cout << s2 << endl;s2 += s1;cout << s2 << endl;}

 

 三、迭代器

1、迭代器

[begin,end):左闭右开区间,即: begin指向第一个位置,end指向最后一个位置的后一个位置

void Test3()
{string s1 = "Hello World";//迭代器//[begin,end)string::iterator it = s1.begin();while (it != s1.end()){cout << *it << " ";++it;}cout << endl;it = s1.begin();while (it != s1.end()){(*it)++;cout << *it << " ";++it;}cout << endl;
}

 2、反向迭代器

注意:这里迭代还是使用“++”,而非“--”

void Test4()
{string s1 = "Hello World";//反向迭代器//[begin,end)//string::reverse_iterator rit = s1.rbegin();auto rit = s1.rbegin();//auto自动推演类型while (rit != s1.rend()){cout << *rit << " ";++rit;}cout << endl;rit = s1.rbegin();while (rit != s1.rend()){(*rit)++;cout << *rit << " ";++rit;}cout << endl;//范围for原理:迭代器for (auto ch : s1){cout << ch << " ";}cout << endl;
}

3、const string

void func(const string& s)
{string::const_iterator it = s.begin();while (it != s.end()){cout << *it << " ";it++;}cout << endl;string::const_reverse_iterator rit = s.rbegin();while (rit != s.rend()){cout << *rit << " ";rit++;}cout << endl;}void Test5()
{string s1 = "Hello World";func(s1);
}

 

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

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

相关文章

正中优配:牛市旗手“又行了”

8月15日早盘&#xff0c;A股首要指数呈弱势盘整态势&#xff0c;截至记者发稿时&#xff0c;沪指小幅翻红&#xff0c;深证成指、创业板指依然飘绿。 中拉升&#xff1b;周一活泼的酒店、旅游板块则震荡调整&#xff1b;房地产板块盘中震荡&#xff0c;体现较弱。 “牛市旗手”…

JVM---理解jvm之对象已死怎么判断?

目录 引用计数算法 什么是引用 可达性分析算法&#xff08;用的最多的&#xff09; 引用计数算法 定义&#xff1a;在对象中添加一个引用计数器&#xff0c;每当有一个地方引用它时&#xff0c;计数器值就加一&#xff1b;当引用失效时&#xff0c;计数器值就减一&#xff1…

企业权限管理(九)-用户操作

用户操作 1用户查询 UserController findAll Controller RequestMapping("/user") public class UserController {Autowiredprivate IUserService userService;RequestMapping("/findAll.do")public ModelAndView findAll() throws Exception {ModelAndVie…

Mysql 搭建MHA高可用架构,实现自动failover,完成主从切换

目录 自动failover MHA&#xff1a; MHA 服务 项目&#xff1a;搭建Mysql主从复制、MHA高可用架构 实验项目IP地址配置&#xff1a; MHA下载地址 项目步骤&#xff1a; 一、修改主机名 二、编写一键安装mha node脚本和一键安装mha mangaer脚本&#xff0c;并执行安装…

让光存在,探索光耦继电器的魔力

光耦合器继电器是电路中的无名英雄&#xff0c;正在改变我们实现电气安全和控制的方式。这些卓越的设备&#xff08;也称为光电耦合器继电器&#xff09;由于其在电气隔离电路上传输信号和功率的独特能力而在各个行业中广受欢迎。今天&#xff0c;我们深入探讨光耦合器继电器背…

AI一键生成数字人

AI一键生成数字人 阅读时长&#xff1a;10分钟 本文内容&#xff1a; 结合开源AI&#xff0c;一键生成短视频发布到常见的某音&#xff0c;某手平台&#xff0c;狠狠赚一笔 前置知识&#xff1a; 基本的 python 编程知识Jupyter Notebook 使用过Linux 使用过 先上源码,colab一键…

如何快速便捷收集市场信息?电商API来帮你

电商API&#xff08;Application Programming Interface&#xff0c;应用程序编程接口&#xff09;是为了促进不同电商平台之间数据共享和交互而设计的一种技术。通过使用电商API&#xff0c;可以快速便捷地收集市场信息&#xff0c;提升电商运营效率&#xff0c;增加竞争力。 …

Flutter 混合架构方案探索

得益于 Flutter 优秀的跨平台表现&#xff0c;混合开发在如今的 App 中随处可见&#xff0c;如最近微信公布的小程序新渲染引擎 Skyline 发布正式版也在底层渲染上使用了 Flutter&#xff0c;号称渲染速度提升50%。 在现有的原生 App 中引入 Flutter 来开发不是一件简单的事&a…

Bitcoin 加速交易操作示例

这里以 Bitcoin Ordinals NFT 为例&#xff0c; 进行加速交易演示 第1步&#xff1a;新建子账户 温馨提示&#xff1a;如果有多条鱼未确认&#xff0c;也只需1个账户即可&#xff0c;不必搞多个子账户 第2步&#xff1a;切换回到老地址&#xff08;Account 1&#xff09; 第3步…

【Unity每日一记】进行发射,位置相关的方法总结

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;uni…

【设计模式——学习笔记】23种设计模式——状态模式State(原理讲解+应用场景介绍+案例介绍+Java代码实现)

文章目录 案例引入介绍基本介绍登场角色应用场景 案例实现案例一类图实现 案例二&#xff1a;借贷平台源码剖析传统方式实现分析状态修改流程类图实现 案例三&#xff1a;金库警报系统系统的运行逻辑伪代码传统实现方式使用状态模式 类图实现分析问题问题一问题二 总结文章说明…

基于飞桨图学习框架实现的城市地点动态关系挖掘

李双利 飞桨开发者技术专家&#xff08;PPDE&#xff09;&#xff0c;百度研究院商业智能实验室研究实习生&#xff0c;中国科学技术大学在读博士生。 主要进行时空数据挖掘和图深度学习的相关研究工作。曾获2021年百度研究院年度优秀实习生&#xff0c;有多篇基于飞桨完成的…

error_Network Error

此页面为订单列表&#xff0c;是混合开发(页面嵌入在客户端中) 此页面为订单列表&#xff0c;此需求在开发时后端先将代码发布在测试环境&#xff0c;我在本地调试时调用的后端接口进行联调没有任何问题。 此后我将代码发布在测试环境&#xff0c;在app中打开页面&#xff0c…

smardaten实战丨谁说无代码不能开发出漂亮的门户首页?

一、需求背景 门户首页对于一个公司或组织来说是一个极其重要的网站页面&#xff0c;它可以作为访问者了解和获取相关信息的入口&#xff0c;同时也是展示品牌形象和吸引目标受众的重要工具。 开发一个门户首页需要开发团队在向访问者展示关于公司或组织基本信息的基础上&…

Qt自定义对话框

介绍 自定义框主要通过对现有对话框QDialog类的派生&#xff0c;根据需求编写成员函数、重载信号函数、槽函数&#xff0c;进而实现在主QWidget中点击某个按钮后&#xff0c;一个对话框的弹出 流程 简化创建派生类 最后点击完成即可。 自定义ui界面&#xff0c;编写成员函数…

Netty:用ByteBufUtil的函数将字节数组、或者ByteBuf的内容转换为十六进制表示的字符串

用ByteBufUtil的hexDump(byte[] array)函数将字节数组的内容转换为十六进制表示的字符串 package com.thb;import io.netty.buffer.ByteBufUtil;public class Demo {public static void main(String[] args) {byte[] b new byte[] {0x68, 0x16, 0x03, 0x04, (byte)0xae};Stri…

ASR 语音识别接口封装和分析

这个文档主要是介绍一下我自己封装了 6 家厂商的短语音识别和实时流语音识别接口的一个包&#xff0c;以及对这些接口的一个对比。分别是&#xff0c;阿里&#xff0c;快商通&#xff0c;百度&#xff0c;腾讯&#xff0c;科大&#xff0c;字节。 zxmfke/asrfactory (github.c…

前后端分离------后端创建笔记(07)表单验证

1、我输入数据&#xff0c;然后关闭&#xff0c;重新打开会发现残存的数据仍然保留着 2、点了这个x号&#xff0c;数据就全部被清理了 3、点这三个地方&#xff0c;数据全部都清理掉 4、这里先写一个方法 4.1 定义一个方法 4.2 这里表单的数据在哪里&#xff0c;就是这个 4.3 …

Qt扫盲-QWidget理论使用总结

QWidget理论使用总结 一、概述二、顶层 控件 和子 控件三、复合控件四、自定义控件和绘制五、大小提示和大小策略六、事件七、一组函数和属性八、QWidget样式表九、透明度和双缓冲十、创建半透明窗口 一、概述 widget 是用户界面的最小单位&#xff1a;它从window系统接收鼠标…

Unity游戏源码分享-精品即时战略游戏_官网60美刀素材

Unity游戏源码分享-精品即时战略游戏_官网60美刀素材 下载地址&#xff1a;https://download.csdn.net/download/Highning0007/88204017