文章目录

  • C++字符串的初始化
  • C++字符串的追加 插入 连接 空间分配 替换
  • C++string 查找和替换
  • 字符串比较
  • 利用迭代器倒排一个字符串

C++字符串的初始化

int main()
{// string s1('a'); //不支持单一char字符的转换// string s(1); //不支持单一数字的转换string s1(1, 'a');cout << "s1 : " << s1<<endl;string s2(5, 'b');cout << "s2 : " << s2 << endl;string s3("char in this"); //字符串初始化cout << "s3 : " << s3 << endl;string s4("c");//字符串初始化cout << "s4 : " << s4 << endl;}

C++字符串的追加 插入 连接 空间分配 替换

int main()
{string bigNews("I saw Elvis in a UFO");cout << bigNews<<endl;cout << "bigNews : " << bigNews << endl;//编译器给bigNews分配了多少存储空间cout << "bigNews capacity : " << bigNews.capacity() << endl;//bigNews的实际长度,使用长度cout << "bigNews size : " << bigNews.size() << endl;//*************插入****************bigNews.insert(1, "insert");cout << "bigNews : " << bigNews << endl;//编译器给bigNews分配了多少存储空间cout << "bigNews capacity : " << bigNews.capacity() << endl;//bigNews的实际长度,使用长度cout << "bigNews size : " << bigNews.size() << endl;//****************替换*******************string rep = "IIIIIIIIIIIIIIIIIIIIIIIIIIIIII";bigNews.replace(0, rep.size(),rep);cout << "bigNews : " << bigNews<< endl;//编译器给bigNews分配了多少存储空间cout << "bigNews capacity : " << bigNews.capacity() << endl;//bigNews的实际长度,使用长度cout << "bigNews size : " << bigNews.size() << endl;//************重新分配空间***************bigNews.reserve(100);//编译器给bigNews分配了多少存储空间cout << "bigNews capacity : " << bigNews.capacity() << endl;
}

C++string 查找和替换

//***********************C++string 查找和替换*************************
string& replaceAll(string& context, const string& from, const string& to)
{size_t lookHere = 0; //lookHere游标很重要,防止from是to的子字符串,出现无限循环size_t foundHere;while ((foundHere = context.find(from, lookHere)) != string::npos){context.replace(foundHere, from.size(), to);lookHere = foundHere + to.size();}return context;
}int main()
{string con = "I am a good boy,good boy am I";/*string f = "a";string t = "girl";replaceAll(con, f, t);cout << con << endl;*///以下是字符串提供的多个find函数size_t place = con.find("boy");  //查找匹配cout << place << endl;place = con.find_first_of("boy"); //找到第一个与目标字符串任意字符匹配的字符cout << place << endl;place = con.find_last_of("boy"); //找到最后一个与目标字符串任意字符匹配的字符cout << place << endl;place = con.find_first_not_of("boy");cout << place << endl;place = con.find_last_not_of("boy");cout << place << endl;place = con.rfind("boy"); //从最后面开始找到第一个boycout << place << endl;
}

字符串比较

//************************** 字符串比较 字典比较*****************
int main()
{string little = "little";string litt = "litt";string litd = "litd";cout << "little > litt : " << (little > litt) << endl;cout << "litt > litd : " << (litt > litd) << endl;}

利用迭代器倒排一个字符串

//************一个逆转字符串顺序的函数********************
void reverseString(string& str)
{if (str.size() <= 1)return;//取字符串首尾迭代器string::iterator strItr1 = str.begin();string::reverse_iterator strItr2 = str.rbegin();size_t  size = str.size()  / 2;for (int i = 0; i < size; i++){//交换迭代器内容char temp = *strItr2;*strItr2 = *strItr1;*strItr1 = temp;//移动迭代器位置strItr1++;strItr2++;}
}int main()
{string str = "I am a ma I";string str2 = "I am a ma I";reverseString(str);cout << str << endl;cout << "str is a huiWen :" << (str == str2) << endl;
}

C++编程思想:C++string相关推荐

  1. 类的包访问权限:《Java编程思想》中一段话的困惑

    类的包访问权限:<Java编程思想>中一段话的困惑 在<java编程思想第三版>(陈昊鹏 饶若楠等译)的第五章隐藏具体实现中,5.4节的最后一段话是: "正如前面所提 ...

  2. 《Java编程思想》学习笔记(三)——初始化与清理

    一.初始化 初始化其实就是为变量分配内存空间,并确定其初始值的过程.想了解Java中初始化的各种情况,首先要了解Java中变量的类型.根据自己的理解,将Java中的变量类型分成以下几种,虽然可能不太准 ...

  3. java编程思想 入门_java编程思想学习(基础)

    第一章 java介绍 1.编程的本质: 机器空间:解空间 问题空间:实际需要解决的业务问题,将该问题抽象化,在解空间中对问题建模. 编程就是建立问题空间和机器空间中的关联 面向对象编程思想: 1.万物 ...

  4. Java中的泛型 --- Java 编程思想

    前言 ​ 我一直都认为泛型是程序语言设计中一个非常基础,重要的概念,Java 中的泛型到底是怎么样的,为什么会有泛型,泛型怎么发展出来的.通透理解泛型是学好基础里面中非常重要的.于是,我对<Ja ...

  5. 《Java编程思想》读书笔记 第十三章 字符串

    <Java编程思想>读书笔记 第十三章 字符串 不可变String String对象是不可变的,每一个看起来会修改String值的方法,实际上都是创建一个全新的String对象,以及包含修 ...

  6. 重新精读《Java 编程思想》系列之组合与继承

    Java 复用代码的两种方式组合与继承. 组合 组合只需将对象引用置于新类中即可. 比如我们有一个B类,它具有一个say方法,我们在A类中使用B类的方法,就是组合. public class B {p ...

  7. C++编程思想重点笔记(下)

    上篇请看:C++编程思想重点笔记(上) 宏的好处与坏处 宏的好处:#与##的使用 三个有用的特征:字符串定义.字符串串联和标志粘贴. 字符串定义的完成是用#指示,它容许设一个标识符并把它转化为字符串, ...

  8. python编程基础(一):编程思想

    编程核心思想:以前我java老师曾告诉我们编程思想:初级选手应该从内而外.从小到大,先从实现一个简单的小功能开始,一点一点往里加,最后让功能变复杂(简单->复杂:可以先假定最理想.最简单的数据, ...

  9. 状态机编程思想:删除代码注释(支持C/C++和Java)

    前言 有时为了信息保密或是单纯阅读代码,我们需要删除注释. 之前考虑过正则表达式,但是感觉实现起来相当麻烦.而状态机可以把多种情况归为一类状态再行分解,大大简化问题.本文就是基于状态机实现的. 删除C ...

  10. 至于你信不信,我反正是信了——以类为单位的编程思想

    一.打开和关闭数据库       你需要知道这么几个信息:你要连接的是哪台机器(机器名:SPXY-WYH):你要采取什么身份验证方式(Window身份验证方式,还是SQL Server身份验证方式): ...

最新文章

  1. Python调整图像亮度和饱和度
  2. 加法神经网络--AdderNet: DoWe Really Need Multiplications in Deep Learning?
  3. 新装ubuntu10.04后的一些设置
  4. 第5章--高级数据管理
  5. eclipse中junit_在Eclipse中有效使用JUnit
  6. 语言条件语序心得_考研分享 | 王远新语言学教程要点总结(第五章)
  7. C/C++无限关机(提权例子)
  8. cm201–2刷机短接教程_Jetson TX2 刷机教程(JetPack4.2版本)
  9. 新浪微博客户端(27)-格式化工具条显示数字
  10. 阿里云 短信 sdk 导致strtotime时间戳转换错误 相差8小时
  11. 开源ext2read代码走读之--“\\\\.\\PhysicalDrive0”意义?
  12. 截图工具-Excel加载宏(图片大小可调)
  13. Win10虚拟桌面使用技巧
  14. matlab 求解高次方程,Matlab求解多元高次方程组
  15. 使用ffmpeg读取本地文件,进行推流
  16. 计算机网络课程路由表,计算机网络之探赜索隐
  17. tf计算矩阵维度_tensorflow tf.matmul() (多维)矩阵相乘(多维矩阵乘法)
  18. 理想汽车第三季度净亏损同比降近八成,研发投入不及销售费用
  19. 白鲸开源代立冬:一年5个孵化项目来自于中国,佛系Apache如何帮助中国开源立足全球?
  20. 【学习笔记】嵌入式三级

热门文章

  1. html溢出宽度控制,html - 具有固定宽度列的HTML / CSS表(如果内容溢出,则滚动) - 堆栈内存溢出...
  2. 清华尹成python爬虫百度云_爬虫:利用python完成百度贴吧数据采集
  3. 为项目添加autoprefixer
  4. react复制内容到剪贴板
  5. ES6公用分页组件的封装及应用举例
  6. 控制谷歌浏览器的最大化最小化
  7. ZfNet解卷积:可视化CNN模型( PythonCode可视化Cifar10)
  8. 图像局部显著性—线特征
  9. Writing your first Django app--Django 第一步
  10. Allegro PCB Design GXL (legacy) 由零散的对象构成一个Shape