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 ...
随机推荐
- C# Task
Task是一种基于任务的编程模型.它与thread的主要区别是,它更加方便对线程进程调度和获取线程的执行结果. Task类和thread类,前者接收的是Action委托类型,后者接收的是Func委托类 ...
- 编程哲学之C#篇:01——创世纪
我们能否像神一样地创建一个世界? 对于创建世界而言,程序员的创作能力最接近于神--相对于导演,作家,漫画家而言,他们创建的世界(作品)一旦完成,就再也不会变化,创建的角色再也不会成长.而程序员创建的世 ...
- UWP开发入门(六)——对多设备不同分辨率显示效果的讨论
本篇不涉及具体代码,而是把实际开发UWP APP的过程中,遇到的不同设备,不同分辨率显示效果差异的问题进行讨论.希望能够抛砖引玉,和各位擦出一些火花. 蜀黍我目前是在做一套牛逼的UWP APP啦,目标 ...
- js事件处理
1.js中常用的事件处理程序(event Handler) onabort 用户终止了页面的加载 onblur 用户离开了对象 onchange 用户修改了对象 onclick 用户点击了对象 one ...
- MongoDB复制集成员及状态转换
此文已由作者温正湖授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 复制集(Replica Set)是MongoDB核心组件,相比早期版本采用的主从(Master-Slave) ...
- Day 48 HTML 语言Day1
HTML文档结构 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset=&qu ...
- CEPH 创建 RPM 安装包
1.安装依赖环境 yum install gcc make python-devel openssl-devel graphviz autoconf automake rpm-build redhat ...
- 【转】目标检测之YOLO系列详解
本文逐步介绍YOLO v1~v3的设计历程. YOLOv1基本思想 YOLO将输入图像分成SxS个格子,若某个物体 Ground truth 的中心位置的坐标落入到某个格子,那么这个格子就负责检测出这 ...
- poj1269---直线位置关系
题目大意:给你8个点,也就是两条直线,让你判断他们的位置关系 代码如下: #include <iostream> #include<cstdio> #include<cm ...
- C++中new申请动态数组
C++中数组分为静态数组和动态数组,静态数组必须确定数组的大小,不然编译错误:而动态数组大小可以不必固定,用多少申请多少.静态数组类于与我们去餐馆吃饭,餐馆会把菜做好.而动态数组类似于我们自己买菜做饭 ...