代码示例:

  1. #include <iostream>
  2. #include "string"
  3. using namespace std;
  4. //字符串初始化
  5. void strInit()
  6. {
  7. cout << "字符串初始化:"  <<endl;
  8. string s1 = "abcdefg";  //初始化方式1
  9. string s2("abcdefg");   //初始化方式2
  10. string s3 = s2;         //通过拷贝构造函数 初始化s3
  11. string s4(7,'s');       //初始化7个s的字符串
  12. cout << "s1 = "<< s1 << endl;
  13. cout << "s2 = "<< s2 << endl;
  14. cout << "s3 = "<< s3 << endl;
  15. cout << "s4 = "<< s4 << endl;
  16. }
  17. //字符串遍历
  18. void strErgo()
  19. {
  20. cout << "字符串遍历:"  <<endl;
  21. string s1 = "abcdefg";  //初始化字符串
  22. //通过数组方式遍历
  23. cout << "1、通过数组方式遍历:"  <<endl;
  24. for (int i = 0; i < s1.length(); i++)
  25. {
  26. cout << s1[i] << " ";
  27. }
  28. cout << endl;
  29. //通过迭代器遍历
  30. cout << "2、通过迭代器遍历:"  <<endl;
  31. for(string::iterator it = s1.begin(); it!= s1.end(); it++)
  32. {
  33. cout << *it << " ";
  34. }
  35. cout << endl;
  36. //通过at()方式遍历
  37. cout << "3、通过at()方式遍历:"  <<endl;
  38. for (int i = 0; i < s1.length(); i++)
  39. {
  40. cout << s1.at(i) << " ";        //此方式可以在越界时抛出异常
  41. }
  42. cout << endl;
  43. }
  44. //字符指针和字符串的转换
  45. void strConvert()
  46. {
  47. cout << "字符指针和字符串的转换:"  <<endl;
  48. string s1 = "abcdefg";  //初始化字符串
  49. cout << "string转换为char*:"  <<endl;
  50. //string转换为char*
  51. cout << s1.c_str() <<endl;  //s1.c_str()即为s1的char *形式
  52. cout << "char*获取string内容:"  <<endl;
  53. //char*获取string内容
  54. char buf[64] = {0};
  55. s1.copy(buf, 7);//复制7个元素
  56. cout << buf <<endl;
  57. }
  58. //字符串连接
  59. void strAdd()
  60. {
  61. cout << "字符串连接:"  <<endl;
  62. cout << "方式1:"  <<endl;
  63. string s1 = "123";
  64. string s2 = "456";
  65. s1 += s2;
  66. cout << "s1 = "<< s1 << endl;
  67. cout << "方式2:"  <<endl;
  68. string s3 = "123";
  69. string s4 = "456";
  70. s3.append(s4);
  71. cout << "s3 = "<< s3 << endl;
  72. }
  73. int main()
  74. {
  75. //初始化
  76. strInit();
  77. cout << endl;
  78. //遍历
  79. strErgo();
  80. cout << endl;
  81. //字符指针类型和字符串转换
  82. strConvert();
  83. cout << endl;
  84. //字符串连接
  85. strAdd();
  86. cout << endl;
  87. system("pause");
  88. return 0;
  89. }

程序运行结果:

  1. 字符串初始化:
  2. s1 = abcdefg
  3. s2 = abcdefg
  4. s3 = abcdefg
  5. s4 = sssssss
  6. 字符串遍历:
  7. 1、通过数组方式遍历:
  8. a b c d e f g
  9. 2、通过迭代器遍历:
  10. a b c d e f g
  11. 3、通过at()方式遍历:
  12. a b c d e f g
  13. 字符指针和字符串的转换:
  14. string转换为char*:
  15. abcdefg
  16. char*获取string内容:
  17. abcdefg
  18. 字符串连接:
  19. 方式1:
  20. s1 = 123456
  21. 方式2:
  22. s3 = 123456
  23. 请按任意键继续. . .

C++字符串string类常用操作详解(一)【初始化、遍历、连接】的更多相关文章

  1. Linux Shell数组常用操作详解

    Linux Shell数组常用操作详解 1数组定义: declare -a 数组名 数组名=(元素1 元素2 元素3 ) declare -a array array=( ) 数组用小括号括起,数组元 ...

  2. String类内存空间详解

    java.lang.String类内存问题详解 字符串理解的难点在于其在堆内存空间上的特殊性,字符串String对象在堆内存上有两种空间: 字符串池(String pool):特殊的堆内存,专门存放S ...

  3. String类的构造方法详解

    package StringDemo; //String类的构造方法详解 //方法一:String(); //方法二:String(byte[] bytes) //方法三:String (byte[] ...

  4. java中的String类常量池详解

    test1: package StringTest; public class test1 { /** * @param args */ public static void main(String[ ...

  5. 【python+selenium的web自动化】- 元素的常用操作详解(一)

    如果想从头学起selenium,可以去看看这个系列的文章哦! https://www.cnblogs.com/miki-peng/category/1942527.html ​ 本篇主要内容:1.元素 ...

  6. 【Git使用详解】Egit的常用操作详解

    常用操作 操作 说明 Fetch 从远程获取最新版本到本地,不会自动merge Merge 可以把一个分支标签或某个commit的修改合并现在的分支上 Pull 从远程获取最新版本并merge到本地相 ...

  7. jQuery 源码分析(十四) 数据操作模块 类样式操作 详解

    jQuery的属性操作模块总共有4个部分,本篇说一下第3个部分:类样式操作部分,用于修改DOM元素的class特性的,对于类样式操作来说,jQuery并没有定义静态方法,而只定义了实例方法,如下: a ...

  8. pandas常用操作详解——info()与descirbe()

    概述 df.info():主要介绍数据集各列的数据类型,是否为空值,内存占用情况: df.describe(): 主要介绍数据集各列的数据统计情况(最大值.最小值.标准偏差.分位数等等). df.in ...

  9. pandas常用操作详解——pd.concat()

    concat函数基本介绍: 功能:基于同一轴将多个数据集合并 pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=Fa ...

随机推荐

  1. hdu 1300 Deck

    题目 分析:对于n张卡片的最佳摆法,我们只需要在n-1张卡片的摆法下面加一张边缘与桌檐重合的卡片,并将所有卡片一起向桌檐外移动.对于一种最佳摆法,其中心一定在桌檐上,所以一定符合杠杆原理,支点是桌檐. ...

  2. 基于jTopo的拓扑图设计工具库ujtopo

    绘制拓扑图有很多开源的工具,知乎上也有人回答了这个问题: https://www.zhihu.com/question/41026400/answer/118726253 ujtopo是基于jTopo ...

  3. Restframework 视图组件与序列号组件的应用.

    models from django.db import models # Create your models here. class Course(models.Model): title=mod ...

  4. kernel 调试 打印IP地址

    #define NIPQUAD(addr) \ ((unsigned char *)&addr)[0], \ ((unsigned char *)&addr)[1], \ ((unsi ...

  5. python 实现获取电脑IP、主机名、Mac地址

    import socket import uuid # 获取主机名 hostname = socket.gethostname() #获取IP ip = socket.gethostbyname(ho ...

  6. 比特、字节、K

    比特(bit) 比特,计算机专业术语,是信息量单位,由英文BIT音译而来.BIT为Binary digit(二进制数)位的缩写.二进制数的一位所包含的信息就是一比特,如二进制数0100就是4比特. 字 ...

  7. Redis的Pub/Sub机制存在的问题以及解决方案

    Redis的Pub/Sub机制使用非常简单的方式实现了观察者模式,但是在使用过程中我们发现,它仅仅是实现了发布订阅机制,但是很多的场景没有考虑到.例如一下的几种场景: 1.数据可靠性无法保证 一个re ...

  8. 二:maven构建module

    通常情况下,我们一个项目是需要分多个模块的,这是我们用maven管理项目就需要构建一个多模块的项目: 通常的结构是一个模块中有一个主项目,下面包含多个子项目,如果是web项目则子项目中有一个是java ...

  9. Concurrent包工具类使用

    一.读写锁 传统的同步锁就是独占式锁,当线程使用资源时候保持独占,无论读写.当人们发现请求队列(假设)中相邻请求为读-读的时候,阻塞是一种浪费资源的操作.比如公告板,所有路过的人(请求)都是读操作,并 ...

  10. 对Spring 及SpringMVC的理解

    spring是一个轻型容器(light-weight Container),其核心是Bean工厂(Bean Factory),用以构造我们所需要的M(Model).在此基础之上,Spring提供了AO ...