标准库类型String

定义和初始化string对象

  初始化string对象方式

    string s1   默认初始化,s1是一个空串

    string s2(s1)  s2是s1的副本

    string s2 = s1  等价于s2(s1), s2是s1的副本

    string s3("value")  s3是字面值"value"的副本,除了字面值最后的那个空字符外   //直接初始化

    string  s3 = "value"  等价于s3("value"),s3 是字面值"value" 的副本        //拷贝初始化

    string s4(n,'c')  把s4初始化为由连续n个字符c组成的串             //直接初始化

直接初始化和拷贝初始化   在上面的初始化方式中有说明  

 

string 对象上 操作

  

 String  的empty和size操作

  empty判断string对象是否为空,返回值为布尔值

  size函数返回string对象的长度

比较string对象

  运算符都依照大小写敏感的字典顺序来进行比较。

两个string对象相加

  两个string对象相加得到一个新的string对象。其内容是左侧运算对象和右侧运算对象串接而成,类似于: "hello" + "world" = "hello world";

字面值和string对象相加

  当把string对象和字符字面值及字符串字面值混在一条语句中使用时,必须要保证每个加法运算符的两侧的运算对象至少有一个是string

  string s5 = "hello" + ",  "  //错误,两个对象都不是string,不能把字面值直接相加。

处理string对象中的字符

  

 使用基于范围的for语句处理每个字符

  string str("some string");

  for(auto c:str )

    cout<<c<<endl;   //将str字符串中的每个字符每行一个输出出来。

使用范围for语句改变字符串中的字符

string s("HELLO WORLD");
for (auto &c : s)       //注意这里的c前有& c = toupper(c); 

  这里的c是引用,赋值语句将改变s中的字符的值。

只处理一部分字符:

  下标运算符:s[i] 直接改

  下标执行迭代(就是在for循环中加控制条件,将要更改的字符提取出来更改就OK了) 

  使用下标执行随机访问

  

一个小练习:

      

 

 1 #include <iostream> 
 2 #include <string>
 3 
 4 using namespace std;
 5 
 6 int main()
 7 {
 8     string str("extraordinary");
 9 
10     for (auto &c : str)
11     {
12         c = 'x';
13     }
14     cout << str << endl;
15 
16     system("pause");
17     return 0;
18 }

 

 

 

转载于:https://www.cnblogs.com/xingzhuan/p/10567194.html

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

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

相关文章

轻量级数据库中间件利器Sharding-JDBC深度解析(有彩蛋)

讲师介绍张亮 当当架构部总监 负责分布式中间件和私有云平台建设 目前主导开源项目&#xff1a;Elastic-Job及Sharding-JDBC 主题简介&#xff1a; 1、关系型数据库中间件核心功能介绍 2、Sharding-JDBC架构及内核解析 3、Sharding-JDBC未来展望 一、关系型数据库中间件核心功…

const 常量_条款03:尽可能使用const

const 允许你指定一个语义约束&#xff08;也就是指定一个“不该被改动”的对象&#xff09;&#xff0c;而编译器会强制实施这项约束。1、const指针如果关键字const出现在星号左边&#xff0c;表示被指物是常量&#xff1b;如果出现在星号右边&#xff0c;表示指针自身是常量&…

javascript高级程序设计---js事件思维导图

绘制思维软件与平时用的笔记&#xff0c;以及导出功能&#xff0c;这三个问题综合起来&#xff0c;于是我把思维导图分开画 1、js事件的基本概念 2、js事件的事件处理程序 3、js事件的事件对象 转载于:https://www.cnblogs.com/Jamie1032797633/p/10567419.html

和 Thrift 的一场美丽邂逅

一. 与 Thrift 的初识 也许大多数人接触 Thrift 是从序列化开始的。每次搜索 “java序列化” “方式”、“对比” 或 “性能” 等关键字时&#xff0c;搜索引擎总是会返回一大堆有关各种序列化方式的使用方法或者性能对比的结果给你&#xff0c;而其中必定少不了 Thrift&#…

弹出框 每次打开 滚动条置顶_微信置顶文字怎么弄?微信置顶一句话教程

今日支付宝红包支付宝首页搜索511501453马上领取红包(支付宝双十二活动&#xff0c;瓜分15亿红包)(领取后一定要记得使用&#xff0c;不然会浪费的呦&#xff0c;更会影响第二天的领取&#xff01;)奶思靓机“ 一 个 有 用 的 公 众 号 の ”嗨&#xff0c;最近很流行在微信上面…

python 3 面向过程编程

python 3 面向过程编程 核心是过程&#xff08;流水线式思维&#xff09;&#xff0c;过程即解决问题的步骤&#xff0c;面向过程的设计就像设计好一条工业流水线&#xff0c;是一种机械式的思维方式。 1、优点&#xff1a;程序结构清晰&#xff0c;可以把复杂的问题简单化&…

在ionic/cordova中使用百度地图插件

在ionic项目中&#xff0c;如果想实现定位功能&#xff0c;可以使用ng-cordova提供的cordova-plugin-geolocation。 但由于高墙的缘故&#xff0c;国内andorid环境下&#xff0c;此插件不起作用&#xff08;ios环境下可用&#xff09;。 国内比较好的是现实使用百度地图提供的A…

汉诺塔问题递归算法python代码_[python]汉诺塔问题递归实现

一、问题描述及算法步骤 汉诺塔问题的大意是有三根柱子a, b, c&#xff0c;现在a柱有N个盘子从下往上尺寸递减排列&#xff0c;要求&#xff1a; 1. 将a上的盘子移动到c柱上; 2. 每次移动一个盘子; 3. 柱子上的盘子始终必须是大的在下面image.png 汉诺塔问题的经典实现算法步骤…

plsql 批量调存储过程_数控双端开榫机:批量铣榫头真牛气

数控双端开榫机主要用于实木家具批量化铣榫头专用&#xff0c;因为其本身的优势逐渐被家具厂老板们所接受&#xff0c;是目前家具生产不可缺少的一款自动化设备&#xff0c;给企业节约了生产成本&#xff0c;今天又焦峰小编来给大家讲解一下。主要技术参数&#xff1a;知乎视频…

python时间差怎么转换为数字_pandas进行时间数据的转换和计算时间差并提取年月日...

#pd.to_datetime函数 #读取数据 import pandas as pd data pd.read_csv(police.csv) #将stop_date转化为datetime的格式的dataframe&#xff0c;存到stop_datetime data[stop_datetime] pd.to_datetime(data.stop_date) #自定义一个时间&#xff0c;计算时间差 data_new pd.…

人脸识别html5效果,用HTML5实现人脸识别

注&#xff1a;今天 HTML5 小组沙龙《论道 HTML5 》分享时有朋友问到一个问题&#xff0c; getUserMedia 是否会支持人脸识别&#xff0c;我当时的答案是这应该是应用来实现的功能&#xff0c;而不是规范要完成的工作。而我之前在网上看到过一篇关于 getUserMedia 和人脸识别的…

华为mate40会不会有鸿蒙系统,鸿蒙OS系统正式推送,拿华为Mate40更新后,发现了优缺点...

自从鸿蒙系统正式推送之后&#xff0c;笔者一直都带着好奇心在体验着HarmonyOS 2带来的变化&#xff0c;生怕错过惊喜&#xff0c;也担心系统本身会出现不足。因为鸿蒙系统就像是年轻人一样&#xff0c;才刚刚出炉&#xff0c;需要时间去磨练&#xff0c;然后才能发挥出真正强大…

jstack使用

jstack主要用来查看某个Java进程内的线程堆栈信息&#xff0c;根据堆栈信息我们可以定位到具体代码&#xff0c;所以它在JVM性能调优中使用得非常多&#xff0c;语法格式如下&#xff1a; jstack [option] pid jstack [option] executable core jstack [option] [server-id]rem…

删除目录软链接注意事项

2019独角兽企业重金招聘Python工程师标准>>> 实验环境&#xff1a; 在root 目录下创建一个目录 1 ,并在该目录下创建一个2.txt 的文件&#xff0c;写入内容 1.txt: [rootserver ~]# mkdir 1 [rootserver ~]# echo 1.txt > 1/2.txt [rootserver ~]# tree 1 1 └─…

html如何模拟点击,Javascript 模拟点击事件(点击链接与html点击) 兼容IE/Firefox

一把情况下模拟点击一般两个方面&#xff0c;模拟点击超级连接事件firefox的兼容的函数为对HTMLAnchorElement 加入onclick事件try {// create a element so that HTMLAnchorElement is accessibledocument.createElement(a);HTMLElement.prototype.click function () {if (ty…

mvn编写主代码与测试代码

maven编写主代码与测试代码 3.2 编写主代码 项目主代码和测试代码不同&#xff0c;项目的主代码会被打包到最终的构件中&#xff08;比如jar&#xff09;&#xff0c;而测试代码只在运行测试时用到&#xff0c;不会被打包。默认情况下&#xff0c;Maven假设项目主代码位于src/…

打印速度快点的打印机_SLM推出了功能强大的新型金属3D打印机,速度快20倍

德国金属3D打印机制造商SLM Solutions在Formnext Connect贸易展览会上推出了功能强大的新系统NXG XII 600。SLM的大幅面机器配备了十二个可同时运行的1 KW激光器&#xff0c;使其速度比该公司自己的单激光SLM 280快20倍。NXG XII 600经过定制设计&#xff0c;可大量生产大型零件…

1.7Oob 继承关系中构造方法的使用

1&#xff1a;父类中最好要有一个空参数的构造方法&#xff0c;因为默认的构造方法在自定义了构造方法后就不存在了&#xff0c;需要显示的写出来。 若父类中没有空参数的构造方法&#xff0c;则子类必须有自定义的构造方法&#xff0c;且用super&#xff08;&#xff09;调用父…

JavaScript浮点运算0.2+0.1 !== 0.3

浮点运算JavaScript 本文主要讨论JavaScript的浮点运算&#xff0c;主要包括 JavaScript number基本类型二进制表示十进制浮点数的精度number 数字类型 在JavaScript中&#xff0c;数字只有number这一种类型; var intS 2,floatA 0.1; typeof intS; // number typeof floatA…

三菱模拟量输入与输出程序_初学PLC是学习西门子还是三菱?

PLC的种类繁多&#xff0c;品牌大多分为欧系、日系、美系。德系PLC以西门子为主&#xff0c;日系有三菱、欧姆龙、松下……&#xff0c;美系有罗克韦尔(A-B)通用电气(GE)公司、莫迪(MODICON)公司等。美国和欧洲的PLC技术是在相互隔离情况下独立研究开发的&#xff0c;因此美国和…