C++字符串string类常用操作详解(一)【初始化、遍历、连接】

代码示例:

  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. 请按任意键继续. . .
上一篇:Android触控屏幕Gesture(GestureDetector和SimpleOnGestureListener的使用教程)


下一篇:将表数据生成Insert脚本