C++ 有关string类的基本语法以及一个简单算法 理论加案例的形式
#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类的基本语法以及一个简单算法 理论加案例的形式相关推荐
- json string 格式_自己动手实现一个简单的JSON解析器
作者:田小波 原文:http://cnblogs.com/nullllun/p/8358146.html 1. 背景 JSON(JavaScript Object Notation) 是一种轻量级的数 ...
- Kanvas:从您的ANTLR语法生成一个简单的IDE
什么是编辑器? 对我来说,编辑器是我工作中使用的主要工具. 作为语言工程师,我创建新的语言,使用现有的语言,并且需要其他工具来使用它们. 我希望能够在一个定制的IDE中将所有这些黑客一起入侵,我可以为 ...
- 一个简单的页面加载管理类(包含加载中,加载失败,数据为空,加载成功)
在最近公布的比赛框架中,发现了页面加载管理类,觉得挺有用的,所以做个简单的笔记. 什么是页面加载管理类呢?(大佬可直接跳过翻看实现过程) 如果能有这个问题,那么很好,哈哈哈,你和我一样,刚开始都挺疑惑 ...
- python类计算器开发_开发一个简单的python计算器
详解: 1.str.split(分隔符):将str按分隔符进行切片,最后形成的是列表类型 eg: str = "Line1-abcdef \nLine2-abc \nLine4-abcd&q ...
- 教你怎么用c++基本语法实现一个简单的五子棋小游戏
这个小游戏是在2020年5月份无聊写的,代码量不大,权当娱乐哈 基本思路: 1.创建一个15*15棋盘类,并设计相关函数(输出棋盘,下黑棋,下白棋等) 2.编写judge()函数,判断胜负条件 3.主 ...
- 缓存类java_用Java写一个简单的缓存操作类
前言 使用缓存已经是开发中老生常谈的一件事了,常用专门处理缓存的工具比如Redis.MemCache等,但是有些时候可能需要一些简单的缓存处理,没必要用上这种专门的缓存工具,那么自己写一个缓存类最合适 ...
- [Java]String类基础知识与常用方法总结
这篇文章用于记录个人学习过程中Java中String类的一些基础知识和方法.主要记录了String类的特性.常用方法,以及和基本数据类型.包装类互转方面的内容. 源码部分 我们先简易看下Java13中 ...
- Java里的字符串, String类简单介绍.
String类在java面试中也是1个常见的问题点. 所以也是写在这里方便以后查阅了. 大家都知道c语言里是没有String 字符串这个数据类型的. 只能用字符数组的1个特殊形式来表示一个字符串, 就 ...
- 字符串string类使用总结
一.String类的使用 字符串是Unicode字符的有序集合. String对象是System.Char对象的有序集合,可用索引器来访问字符. String类定义的变量是一个引用类型,可赋值为nul ...
最新文章
- swift tableview 侧滑删除
- 为什么要两次调用encodeURI来解决乱码问题
- Python自动化运维工具-Fabric部署及使用总结
- DML风格的批量更新/删除
- MediaPlayer 播放视频的方法
- python的深造方向_自动化深造方向有哪些?
- java integer == int_Java中int和Integer的区别详解
- HDFS 基础部分详解
- Java 并发编程 基础
- iOS:CoreData数据库的使用二(创建多个数据库表,表之间有对应关系)
- js 中添加php数组,浅谈javascript中数组Array的添加/删除操作
- 城市ai大脑_激发AI研究的大脑五个功能
- java解析marc乱码_国际C语言乱码大赛(IOCCC)的一个经典作品
- 冰点还原精灵如何卸载
- 辽宁科技大学计算机与软件工程学院调剂,辽宁科技大学2019年硕士研究生调剂信息...
- 强势崛起!这所年轻大学南科大,是中国高教的奇迹!
- Android与H5相互接口调用及Android端接口整理
- python中文社区-python
- 清除FreeIPA SSSD缓存
- 【学习 · 求职必备】学CV必须关注的会议与期刊