#include<iostream>
using namespace std;
#include"string"   //string类的头文件
#include"algorithm"  //算法的头文件//string类的初始化  四种方法
void main21()
{string a = "aaaa";string b("bbbbb");string c = b;  //通过拷贝构造函数string d(10, 'f');cout << a << endl;cout << b << endl;cout << c << endl;cout << d << endl;
}//string 类的遍历void main22()
{string a = "abcdefgh";//通过数组的方式for (int i = 0; i < a.length(); i++){cout << a[i] << " ";}cout << endl;//通过迭代器的方法for (string::iterator it = a.begin(); it != a.end(); it++){cout << *it << " ";}cout << endl;//string中的at方法  for (int j = 0; j < a.length(); j++){cout << a.at(j) << " ";   //与数组遍历最大的区别就是 使用at()方法可以实现对于异常的抛出}cout << endl;//对于抛出异常的例子try{for (int j = 0; j < a.length() +3; j++)  //故意出现一个溢出{cout << a.at(j) << " ";   //与数组遍历最大的区别就是 使用at()方法可以实现对于异常的抛出}} catch (...)   //代表检测所有的异常{cout << "发现异常" << endl;    }}//string 和 字符指针的转换
void main23()
{string a = "abhdsjdjaks";string b = "abhdsjdjaks";// string -> char *printf("%s", a.c_str());cout << endl;//char * -> string   就是 string a = "abhdsjdjaks";//将a中的内容拷贝到char*中char buf[128] = {0}; //设置char *的时候一定要先分配好内存 并且最好全部进行一个初始化b.copy(buf, 3, 0); //代表将a中第0个字符开始,拷贝三个字符到char* buf中cout << buf << "";}//string 字符串的链接void main24()
{string a = "abc";string b = "def";string s1 = a + b;  //函数中重载了+运算符cout << "s1:" << s1 << endl;string a1 = "abc";string b1 = "def";string s2 = b1.append(a1);    //代表将a1接在b1的后面cout << "s2:" << s2 << endl;
}//字符串的查找和替换   void main25()
{//案例一: 查找yy出现的次数string a = "yy 12234 yy jhhj 8778 yy";int index = a.find("yy",0);   //从0开始找yy出现的位置  并返回一个位置while (index!= -1){cout << "index = " << index << " ";index++;index = a.find("yy", index);}//案例二 : 查找并且将"yy"替换为"YY"index = a.find("yy", 0);   //从0开始找yy出现的位置  并返回一个位置while (index != -1){a.replace(index, 2, "YY");    //删除在index处的2个字符,并且在index处重新插入字符"YY"index++;index = a.find("yy", index);}cout << endl;cout << "替换之后" << a << " ";}//字符串的截断(区间删除)和插入
void main26()
{//案例一  删除字符串中的 ystring a = "yy 12234 yy jhhj 8778 yy";string::iterator it = find(a.begin(), a.end(), 'y');  //find()为算法中的一种 从a的开始到a的结束将y的位置放在迭代器it中if(it != a.end()){a.erase(it);}cout << "删除之后的a " << a << endl;//删除所有的操作a.erase(a.begin(), a.end());cout << "all删除之后的a " << a << endl;cout << "all删除之后的a 的长度" << a.length()<< endl;//插入操作 分为头插法 尾插法char *b = "aaa";string c = "aaa";c.insert(0,2,*b);  //代表从c的第0个位置开始插入b的两个字符串cout << "c = " << c<<endl; c.insert(0, "54615"); //头插法  代表从c的第0个位置开始字符串"54615"  开始插入的位置可以随意选择cout << "c = " <<c << endl;c.insert(c.length(), "54615"); //尾插法  代表从c的第0个位置开始字符串"54615"  开始插入的位置可以随意选择cout << "c = " << c << endl;}//string算法相关
void main27()
{//案例一 将字符串中的小写字母全部变成大写string a = "yy SG Dsg";string b = "yy SG Dsg";transform(a.begin(), a.end(), a.begin(), towupper);  //代表从a的开始到结束所有的小写变成大写再将改变后的字符重新放在a开始的时候cout << a << endl;//案例一 将字符串中的大写字母全部变成小写transform(b.begin(), b.end(), b.begin(), towlower);cout << b << endl;}
int main()
{//main21();  string的初始化//main22();  //string的遍历//main23(); //string 和 字符指针的转换//main24(); //string 字符串的链接//main25(); //string 字符串的查找与替换//main26();//字符串的区间删除和插入main27(); //string算法相关system("pause");return 0;
}

C++ 有关string类的基本语法以及一个简单算法 理论加案例的形式相关推荐

  1. json string 格式_自己动手实现一个简单的JSON解析器

    作者:田小波 原文:http://cnblogs.com/nullllun/p/8358146.html 1. 背景 JSON(JavaScript Object Notation) 是一种轻量级的数 ...

  2. Kanvas:从您的ANTLR语法生成一个简单的IDE

    什么是编辑器? 对我来说,编辑器是我工作中使用的主要工具. 作为语言工程师,我创建新的语言,使用现有的语言,并且需要其他工具来使用它们. 我希望能够在一个定制的IDE中将所有这些黑客一起入侵,我可以为 ...

  3. 一个简单的页面加载管理类(包含加载中,加载失败,数据为空,加载成功)

    在最近公布的比赛框架中,发现了页面加载管理类,觉得挺有用的,所以做个简单的笔记. 什么是页面加载管理类呢?(大佬可直接跳过翻看实现过程) 如果能有这个问题,那么很好,哈哈哈,你和我一样,刚开始都挺疑惑 ...

  4. python类计算器开发_开发一个简单的python计算器

    详解: 1.str.split(分隔符):将str按分隔符进行切片,最后形成的是列表类型 eg: str = "Line1-abcdef \nLine2-abc \nLine4-abcd&q ...

  5. 教你怎么用c++基本语法实现一个简单的五子棋小游戏

    这个小游戏是在2020年5月份无聊写的,代码量不大,权当娱乐哈 基本思路: 1.创建一个15*15棋盘类,并设计相关函数(输出棋盘,下黑棋,下白棋等) 2.编写judge()函数,判断胜负条件 3.主 ...

  6. 缓存类java_用Java写一个简单的缓存操作类

    前言 使用缓存已经是开发中老生常谈的一件事了,常用专门处理缓存的工具比如Redis.MemCache等,但是有些时候可能需要一些简单的缓存处理,没必要用上这种专门的缓存工具,那么自己写一个缓存类最合适 ...

  7. [Java]String类基础知识与常用方法总结

    这篇文章用于记录个人学习过程中Java中String类的一些基础知识和方法.主要记录了String类的特性.常用方法,以及和基本数据类型.包装类互转方面的内容. 源码部分 我们先简易看下Java13中 ...

  8. Java里的字符串, String类简单介绍.

    String类在java面试中也是1个常见的问题点. 所以也是写在这里方便以后查阅了. 大家都知道c语言里是没有String 字符串这个数据类型的. 只能用字符数组的1个特殊形式来表示一个字符串, 就 ...

  9. 字符串string类使用总结

    一.String类的使用 字符串是Unicode字符的有序集合. String对象是System.Char对象的有序集合,可用索引器来访问字符. String类定义的变量是一个引用类型,可赋值为nul ...

最新文章

  1. swift tableview 侧滑删除
  2. 为什么要两次调用encodeURI来解决乱码问题
  3. Python自动化运维工具-Fabric部署及使用总结
  4. DML风格的批量更新/删除
  5. MediaPlayer 播放视频的方法
  6. python的深造方向_自动化深造方向有哪些?
  7. java integer == int_Java中int和Integer的区别详解
  8. HDFS 基础部分详解
  9. Java 并发编程 基础
  10. iOS:CoreData数据库的使用二(创建多个数据库表,表之间有对应关系)
  11. js 中添加php数组,浅谈javascript中数组Array的添加/删除操作
  12. 城市ai大脑_激发AI研究的大脑五个功能
  13. java解析marc乱码_国际C语言乱码大赛(IOCCC)的一个经典作品
  14. 冰点还原精灵如何卸载
  15. 辽宁科技大学计算机与软件工程学院调剂,辽宁科技大学2019年硕士研究生调剂信息...
  16. 强势崛起!这所年轻大学南科大,是中国高教的奇迹!
  17. Android与H5相互接口调用及Android端接口整理
  18. python中文社区-python
  19. 清除FreeIPA SSSD缓存
  20. 【学习 · 求职必备】学CV必须关注的会议与期刊

热门文章

  1. eclipse32位安装教程_Mastercam X6/(32位、64位) 软件安装教程
  2. vue列表的单独展开收起和全部展开收起
  3. NAT(地址转换模式)
  4. uni-app实现扫描二维码功能
  5. 电子设计中常用的运放电路
  6. 计算机物理内存大小怎么查,如何查看电脑物理内存大小
  7. 签名验签服务器的作用,卫士通签名验证服务器
  8. Java发邮件(详解+源代码)
  9. Java poi导入合并单元格的excel数据【最完整】附pom文件和excel截图
  10. clickhouse 离线安装