代码示例:

  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. 配置使用sourcemap调试vue源码爬坑

    环境: Google Chrome  V72.0.3626.109 vue-dev V 2.6.10 爬坑的乐趣就不说了(我恨啊),以下说一下出坑要点 1. 在vue-dev的package.json ...

  2. PAT甲 1032. Sharing (25) 2016-09-09 23:13 27人阅读 评论(0) 收藏

    1032. Sharing (25) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue To store Engl ...

  3. 磁盘配额(Quota)的应用与实践

    1>什么是Quota      在Linux中,由于是多用户,多任务的环境,所以会有多用户共同使用一个硬盘空间的情况发生,如果其中有少数几个用户大量占用掉了硬盘空间的话,那肯定影响其他用户的使 ...

  4. 转:getContextPath、getServletPath、getRequestURI的区别

    假定你的web application 名称为news,你在浏览器中输入请求路径: http://localhost:8080/news/main/list.jsp 则执行下面向行代码后打印出如下结果 ...

  5. JAVA服务器与C#客户端的通信技术调研

    JAVA服务器与C#客户端的通信技术调研 研究背景及目的: ARPG项目的需求:需要将现有的服务器从C++的编写平台换为java语言.在对需求进行分析的过程中,发现几点需要研究实现的问题 java与c ...

  6. OneDrive不能上了?DNS被污染,解决方法很简单

    http://www.expreview.com/34434.html 除了LINE以外,最近微软的OneDrive云存储服务也出现访问故障,不过@月光博客 表示它只是受到DNS污染,被解析为无法访问 ...

  7. Android-Xml文件生成,Xml数据格式写入

    在上一篇博客,Android-XML格式描述,介绍来XML在Android中的格式: 生成xml文件格式数据,Android提供了Xml.newSerializer();,可以理解为Xml序列化: 序 ...

  8. Python学习-22.Python中的函数——type

    type函数可以检测任何值或变量的类型. 例子: def printType(var): print(type(var)) class TestClass: pass printType(1) pri ...

  9. c# 输入姓名直到输入的是quit时,停止输入然后显示出输入的姓名个数及姓名

    1.输入姓名直到输入的是quit时(不区分大小写),停止输入然后显示出输入的姓名个数及姓名: 要求结果如下图所示: class Program { static void Main(string[] ...

  10. sublime text 另一种对齐

    效果如下: http://sublime-text-unofficial-documentation.readthedocs.org/en/latest/extensibility/plugins.h ...