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 ...
随机推荐
- Android-AndroidStudio莫名其妙的错误-finished with non-zero exit value 1
上一篇博客,Android-AndroidStudio莫名其妙的错误-finished with non-zero exit value 1,解决了由于 string.xml 字符导致的: 而这篇博客 ...
- Android 广播代码的发送与接收
Android四大组件之一广播,使用的也比较多,广播可大致分为两种,一种是Android系统区域的广播,是由系统指令发出,例如:点亮屏幕广播,开机过程中的一些广播 省略-, 然而还有一种广播就是我们自 ...
- centos:开启和关闭selinux
5.4. Enabling and Disabling SELinux Use the /usr/sbin/getenforce or /usr/sbin/sestatus commands to c ...
- Android开发消除横向排列的多个Button之间的空隙
一.问题重述 摘要里描述的可能不太清楚,问题如下图: 如何消除Button1和Button2之间的空隙,以及Button与左右边界之间的空隙? 二.问题根源 这里出现的空隙其实是Button的背景图片 ...
- ubuntu Mono+Jexus 部署到 ASP.NET MVC 5
之前搞了很多次都是卡在了razor那个异常哪里,今天心血来潮就在试一试,一试竟然成功了,激动的我赶紧记录下历程.废话不说,走起... ubuntu 16.04 安装mono(最新版 5.14.0) 官 ...
- Elasticsearch、Kibana Windows下环境搭建
Elasticsearch 簡介 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是 ...
- c# 求第30位数的值
1,1,2,3,5,8,13,21,34,55.... 求第30位数的值: 递归方法: class Program { static void Main(string[] args) { //找规律: ...
- S11 day 97 -98天 Luffycity项目
1. 建模 from django.db import models from django.contrib.contenttypes.fields import GenericForeignKey, ...
- Python廖雪峰学习笔记——单元测试
定义:对一个模块.一个类.一个函数进行进行正确性检验的测试性工作.当我们对函数或者模块等进行修改时,单元测试就显得尤为重要. 单元测试 = 测试用例(用来测试的数据)+测试模块
- Cordova - OSX中,nodev7.5.0无法安装cordova解决方法!
OSX:10.12.3 node:v7.5.0 结果很搞笑啊,先前怎么安装都不成功,现在居然安装成功了!我认为安装失败最大的原因是:你不能访问谷歌的原因!!!! 使用最新稳定版,有助于安装,可以顺便安 ...