string构造函数
代码如下:

#include <iostream>
#include <string>
using namespace std;void test01()
{string s1;cout << "s1 = " << s1 << endl;const char *str = "hello world";string s2(str);cout << "s2 = " << s2 << endl;string s3(s2);cout << "s3 = " << s3 << endl;string s4(10, 'a');cout << "s4 = " << s4 << endl;}int main()
{test01();return 0;
}

测试结果:

总结:
string的多种构造方式没有可比性,灵活使用即可。

代码如下:

#include <iostream>
#include <string>
using namespace std;void test01()
{string str1;str1 = "hello world";cout << "str1 = " << str1 << endl;string str2;str2 = str1;cout << str2 << endl;string str3;str3 = 'a';cout << "str3 = " << str3 << endl;string str4;str4.assign("hello c++");cout << "str4 = " << str4 << endl;string str5;str5.assign("hello c++", 5);cout << "str5 = " << str5 << endl;string str6;str6.assign(str5);cout << "str6 = " << str6 << endl;}int main()
{test01();return 0;
}

测试结果:

总结:
string的赋值方式很多,operator= 这种方式是比较实用的。

代码如下:

#include <iostream>
#include <string>
using namespace std;void test01()
{string str1 = "我";str1 += "爱玩游戏";cout << "str1 = " << str1 << endl;str1 += ":";cout << "str1 = " << str1 << endl;string str2 = "LoL DNF";str1 += str2;cout << "str1 = " << str1 << endl;string str3 = "I";str3.append("Love");//str3.append(str2);str3.append("game abcde", 4);str3.append(str2, 4, 3);//从下标4位置开始,截取3个字符,拼接到字符串末尾cout << "str3 = " << str3 << endl;}int main()
{test01();return 0;
}

测试结果:

代码如下:

#include <iostream>
#include <string>
using namespace std;void test01()
{//查找string str1 = "abcdefgde";int pos = str1.find("de");if (pos == -1){cout << "no find" << endl;}else cout << "pos = " << pos << endl;pos = str1.rfind("de");cout << "pos = " << pos << endl;}void test02()
{//替换string str1 = "abcdefgde";str1.replace(1, 3, "1111");cout << "str1 = " << str1 << endl;
}int main()
{test01();cout << "-----------------------------------"<<endl;test02();return 0;
}

测试结果:

总结:


代码如下:

#include <iostream>
#include <string>
using namespace std;void test01()
{string s1 = "hello";string s2 = "aello";int ret = s1.compare(s2);if (ret == 0){cout << "s1 = s2" << endl;}else if (ret > 0){cout << "s1 > s2" << endl;}else{cout << "s1 < s2" << endl;}}int main()
{test01();return 0;
}

测试结果:

总结:
字符串对比主要是用于比较两个字符串是否相等,判断谁大谁小的意义并不是很大。

代码如下:

#include <iostream>
#include <string>
using namespace std;void test01()
{string str = "hello world";for (int i = 0; i < str.size(); i++){cout << str[i] << " ";}cout << endl;for (int i = 0; i < str.size(); i++){cout << str.at(i) << " ";}cout << endl;//字符修改str[0] = 'x';str.at(1) = 'x';cout << str << endl;}int main()
{test01();return 0;
}

测试结果:

总结:
string字符串中单个字符存取有两种方式,利用[]或at

代码如下:

#include <iostream>
#include <string>
using namespace std;void test01()
{string str = "hello";str.insert(1, "111");cout << str << endl;str.erase(1, 3);cout << str << endl;}int main()
{test01();return 0;
}

测试结果:

总结:
插入和删除的起始下标都是从0开始

代码如下:

#include <iostream>
#include <string>
using namespace std;void test01()
{string str = "abcdefg";string subStr = str.substr(1, 3);cout << "subStr = " << subStr << endl;string email = "hello@sina.com";int pos = email.find("@");string username = email.substr(0, pos);cout << "username = " << username << endl;
}int main()
{test01();return 0;
}

测试结果:

[C++STL]string容器用法介绍相关推荐

  1. [C++STL]set容器用法介绍

    代码如下: #include <iostream> #include <set> using namespace std;void printSet(set<int> ...

  2. [C++STL]list容器用法介绍

    代码如下: #include <iostream> #include <string> #include <list> using namespace std;vo ...

  3. [C++STL]deque容器用法介绍

    代码如下: #include <iostream> #include <string> #include <deque> using namespace std;v ...

  4. [C++STL]vector容器用法介绍

    代码如下: #include <iostream> #include <string> #include <vector> using namespace std; ...

  5. [C++STL]map容器用法介绍

    代码如下: #include <iostream> #include <string> #include <map> using namespace std;voi ...

  6. [C++STL]queue容器用法介绍

  7. [C++STL]stack容器用法介绍

  8. [C++ STL] 各容器简单介绍

    [C++ STL] 各容器简单介绍 目录 一.什么是STL? 二.容器(Containers) 2.1 vector 2.2 deque 2.3 list 2.4 set 2.5 map 2.6 容器 ...

  9. oracle 删除 queue,C++ stl队列Queue用法介绍:删除,插入等操作代码举例

    c++队列queue模板类的定义在头文件中,queue 模板类需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque 类型. C++队列Queue是一种容 ...

最新文章

  1. java intent bundle_Android 通过Intent使用Bundle传递对象详细介绍
  2. windows服务守护进程bat脚本、windows窗体守护进程bat脚本
  3. 欧司朗台灯的灯泡容易坏是怎么回事
  4. ViceDinoSpecCtrl.cpp
  5. canvas 判断哪个元素被点击_监听 Canvas 内部元素点击事件的三种方法
  6. Javascript实现BFS算法
  7. 专供PNG免抠设计素材好地方,做设计到搜图114
  8. TensorFlow2.0:维度变换
  9. JS计算GridView里的TextBox
  10. Linux 内核和 Windows 内核有什么区别?
  11. Centos安装交叉编译工具链
  12. 大鱼吃小鱼c语言编程,scratch大鱼吃小鱼设计思路
  13. 一、 输出 1~100 之间不能被 7 整除的数,每行输出 10 个数字,要求应用字符 串格式化方法(任何一种均可) 美化输出格式。 输出效果为:
  14. 开发脚手架及封装自动化构建工作流
  15. 亚马逊邮件关联 关联原因?邮件
  16. UDN_CanvasHUD
  17. Illumination与任天堂发布《超级马力欧兄弟大电影》首支预告片,影片将于2023年上映
  18. sort排序,数组随机排序,随即洗牌
  19. 为推动区块链支付网络全球化,国外各大银行开始抱团
  20. 计算机专业培训实施方案,学校信息化培训实施方案

热门文章

  1. 西北师范大学地理与环境科学学院考研真题汇总(高等数学)持续更新。。。
  2. ArcGIS 10.2中栅格数据的属性表问题
  3. Android之稍微靠谱点的透明Activity(不获取触摸事件)
  4. C语言之rand()和srand()函数
  5. 对象比较 ===三个等于号
  6. java 常用类库_JAVA(三)JAVA常用类库/JAVA IO
  7. mysql 配置多个数据库连接_总结MySQL修改最大连接数的两个方式
  8. python运行时间过长怎么优化_Python性能优化的20条建议
  9. 直男约会能有多奇葩​?
  10. 你家猫砸东西是不是也专挑贵的砸?