代码示例:

  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. win7结束进程 时,提示“拒绝访问”、“没有此任务的实例运行”怎么办?

    开发了个程序,创建了一个进程,但是杀不掉了,在任务管理器里面 右键--结束进程,提示“拒绝访问”,或者“没有此任务实例运行” 怎么办? 直接给答案:PCHunter 具体方法: 1.打开PCHunte ...

  2. Python学习-20.Python的Urllib模块

    除了 Http 模块可以模拟 Http 请求外,使用 Urllib 模块也是可以模拟 Http 请求的,只不过功能相对弱一点. import urllib.request opener = urlli ...

  3. 【实战TFS】【QQ群】了解别人是如何使用TFS的

    长时间在这个QQ群里面混,了解到其他人是如何使用TFS系统的,也与网友们一起探讨,共同提高,还有分享的大量资料文档. 推荐一下:):)

  4. Ubuntu安装Apache+PHP

    1.Ubuntu 安装Apache 安装Apache sudo apt-get install apache2 修改端口号 打开 etc/apache2/port.config 修改 port 80 ...

  5. easyui-layout系列之表单一(2)

    表单在我们的开发过程非常的常见,easyUI给我们提供了非常方便快捷的表单开发工具,使用熟练可以大大的提高后台开发速度,非常有必要熟练掌握. 1.Textbox-文本框 扩展自$.fn.validat ...

  6. 前端分享----JS异步编程+ES6箭头函数

    前端分享----JS异步编程+ES6箭头函数 ##概述Javascript语言的执行环境是"单线程"(single thread).所谓"单线程",就是指一次只 ...

  7. 前端工具Rythem介绍

    Rythem是一个与Fiddler同类的软件,和Fiddler一样具有 代理抓包/替换 功能,与Fiddler最大的不同是Rythem是跨平台&开源的. 另外,根据笔者的一次开发经验,Ryth ...

  8. 使用pipreqs生成项目依赖

    作用 导出当前项目的环境依赖 使用 # 安装 pip3 install pipreqs # 导出项目环境依赖 pipreqs ./ # 如果是Windows系统,会报编码错误 (UnicodeDeco ...

  9. Python(文件上传)

    day26 通过socket上传文件. post_client.py import socket import os sk = socket.socket() print(sk) address = ...

  10. 怎样使用Navicat Premium导出导入mysql数据库

    首先,在Navicat Premium中连接要导出数据库的mysql数据库. 2 1.填写好连接数据库的信息后就可以连接到需要导出的数据库了. 3 打开要导出的数据库. 4 将数据库的结构和数据导出为 ...