C++字符串string类常用操作详解(一)【初始化、遍历、连接】
代码示例:
- #include <iostream>
- #include "string"
- using namespace std;
- //字符串初始化
- void strInit()
- {
- cout << "字符串初始化:" <<endl;
- string s1 = "abcdefg"; //初始化方式1
- string s2("abcdefg"); //初始化方式2
- string s3 = s2; //通过拷贝构造函数 初始化s3
- string s4(7,'s'); //初始化7个s的字符串
- cout << "s1 = "<< s1 << endl;
- cout << "s2 = "<< s2 << endl;
- cout << "s3 = "<< s3 << endl;
- cout << "s4 = "<< s4 << endl;
- }
- //字符串遍历
- void strErgo()
- {
- cout << "字符串遍历:" <<endl;
- string s1 = "abcdefg"; //初始化字符串
- //通过数组方式遍历
- cout << "1、通过数组方式遍历:" <<endl;
- for (int i = 0; i < s1.length(); i++)
- {
- cout << s1[i] << " ";
- }
- cout << endl;
- //通过迭代器遍历
- cout << "2、通过迭代器遍历:" <<endl;
- for(string::iterator it = s1.begin(); it!= s1.end(); it++)
- {
- cout << *it << " ";
- }
- cout << endl;
- //通过at()方式遍历
- cout << "3、通过at()方式遍历:" <<endl;
- for (int i = 0; i < s1.length(); i++)
- {
- cout << s1.at(i) << " "; //此方式可以在越界时抛出异常
- }
- cout << endl;
- }
- //字符指针和字符串的转换
- void strConvert()
- {
- cout << "字符指针和字符串的转换:" <<endl;
- string s1 = "abcdefg"; //初始化字符串
- cout << "string转换为char*:" <<endl;
- //string转换为char*
- cout << s1.c_str() <<endl; //s1.c_str()即为s1的char *形式
- cout << "char*获取string内容:" <<endl;
- //char*获取string内容
- char buf[64] = {0};
- s1.copy(buf, 7);//复制7个元素
- cout << buf <<endl;
- }
- //字符串连接
- void strAdd()
- {
- cout << "字符串连接:" <<endl;
- cout << "方式1:" <<endl;
- string s1 = "123";
- string s2 = "456";
- s1 += s2;
- cout << "s1 = "<< s1 << endl;
- cout << "方式2:" <<endl;
- string s3 = "123";
- string s4 = "456";
- s3.append(s4);
- cout << "s3 = "<< s3 << endl;
- }
- int main()
- {
- //初始化
- strInit();
- cout << endl;
- //遍历
- strErgo();
- cout << endl;
- //字符指针类型和字符串转换
- strConvert();
- cout << endl;
- //字符串连接
- strAdd();
- cout << endl;
- system("pause");
- return 0;
- }
程序运行结果:
- 字符串初始化:
- s1 = abcdefg
- s2 = abcdefg
- s3 = abcdefg
- s4 = sssssss
- 字符串遍历:
- 1、通过数组方式遍历:
- a b c d e f g
- 2、通过迭代器遍历:
- a b c d e f g
- 3、通过at()方式遍历:
- a b c d e f g
- 字符指针和字符串的转换:
- string转换为char*:
- abcdefg
- char*获取string内容:
- abcdefg
- 字符串连接:
- 方式1:
- s1 = 123456
- 方式2:
- s3 = 123456
- 请按任意键继续. . .
C++字符串string类常用操作详解(一)【初始化、遍历、连接】的更多相关文章
- Linux Shell数组常用操作详解
Linux Shell数组常用操作详解 1数组定义: declare -a 数组名 数组名=(元素1 元素2 元素3 ) declare -a array array=( ) 数组用小括号括起,数组元 ...
- String类内存空间详解
java.lang.String类内存问题详解 字符串理解的难点在于其在堆内存空间上的特殊性,字符串String对象在堆内存上有两种空间: 字符串池(String pool):特殊的堆内存,专门存放S ...
- String类的构造方法详解
package StringDemo; //String类的构造方法详解 //方法一:String(); //方法二:String(byte[] bytes) //方法三:String (byte[] ...
- java中的String类常量池详解
test1: package StringTest; public class test1 { /** * @param args */ public static void main(String[ ...
- 【python+selenium的web自动化】- 元素的常用操作详解(一)
如果想从头学起selenium,可以去看看这个系列的文章哦! https://www.cnblogs.com/miki-peng/category/1942527.html 本篇主要内容:1.元素 ...
- 【Git使用详解】Egit的常用操作详解
常用操作 操作 说明 Fetch 从远程获取最新版本到本地,不会自动merge Merge 可以把一个分支标签或某个commit的修改合并现在的分支上 Pull 从远程获取最新版本并merge到本地相 ...
- jQuery 源码分析(十四) 数据操作模块 类样式操作 详解
jQuery的属性操作模块总共有4个部分,本篇说一下第3个部分:类样式操作部分,用于修改DOM元素的class特性的,对于类样式操作来说,jQuery并没有定义静态方法,而只定义了实例方法,如下: a ...
- pandas常用操作详解——info()与descirbe()
概述 df.info():主要介绍数据集各列的数据类型,是否为空值,内存占用情况: df.describe(): 主要介绍数据集各列的数据统计情况(最大值.最小值.标准偏差.分位数等等). df.in ...
- pandas常用操作详解——pd.concat()
concat函数基本介绍: 功能:基于同一轴将多个数据集合并 pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=Fa ...
随机推荐
- HDU1065 I Think I Need a Houseboat 2016-07-24 13:59 101人阅读 评论(0) 收藏
I Think I Need a Houseboat Problem Description Fred Mapper is considering purchasing some land in Lo ...
- Android-卖票案例static-不推荐此方式
需求描述:四个窗口一起卖票,把10张票卖完,不许多卖 先看一个错误的案例: package android.java.thread06; /** * 售票线程 */ class Booking ext ...
- ABP 基础设施层——集成 NHibernate
本文翻译自ABP的官方教程<NHibernate Integration>,地址为:http://aspnetboilerplate.com/Pages/Documents/NHibern ...
- 程序猿CET4和CET6考试攻略
写在前面: 学习一种语言是一个长期的过程,而且需要合适的语言环境,不是一朝一夕可以熟练掌握的,但是如果单纯地只是为了通过考试的话,就另当别论了 声明:本篇攻略纯属经验之谈,绝非任何性质的广告,仅供参考 ...
- Oracle数据库多行记录转换一行并排序函数
Oracle数据库多行记录转换一行并排序方法 在ORACLE数据库查询中,我们通常会要求用到将多行记录转换成一行并排序,这时候我们自然会想到Oracle的一个“wx_concat”函数,可以将多行记录 ...
- dorado7-HelloWorld
1.首先在Tomat中将 Auto reloding enable去掉,去掉的目的不用每次更改代码,都要重新部署 2.创建dorado视图文件 2.1 视图文件的格式为xml 2.2 在view中添加 ...
- 《Python黑帽子:黑客与渗透测试编程之道》 基于GitHub的命令和控制
GitHub账号设置: 这部分按书上来敲命令即可,当然首先要注册一个GitHub账号还有之前安装的GitHub API库(pip install github3.py),这里就只列一下命令吧: mkd ...
- FunDA(7)- Reactive Streams to fs2 Pull Streams
Reactive-Stream不只是简单的push-model-stream, 它还带有“拖式”(pull-model)性质.这是因为在Iteratee模式里虽然理论上由Enumerator负责主动推 ...
- nodejs实现请求代理
通常我们常用的请求方法只有GET.POST.PUT和DELETE,所以在此只介绍这四种和文件上传的代理方式 在此我们使用request.js第三方模块实现 GET(DELETE同GET,将reques ...
- Python中的运算符与表达式
你所编写的大多数语句(逻辑行)都包含了表达式(Expressions).一个表达式的简单例子便是 2+3.表达式可以拆分成运算符(Operators)与操作数(Operands).运算符(Operat ...