在看《C++ Primer》之前,使用过的string类型的操作主要有,string对象的赋值、相加、关系运算、size操作,为数不多,今天阅读《C++ Primer》的“9.6节 再谈string类型”,发现原来string提供了这么丰富的操作。因为丰富,查阅起来会比较繁琐,不容易得到要领,在此对其支持的功能罗列总结一下,做一个索引,这样处理问题时,能不能够用string提供的功能、怎样使用就一目了然。
如果可以处理,就根据索引查阅MSDN,选择合适的重载函数。例如:根据功能需要在MSDN中搜索“string::append”,在“Visual Studio 2012”版本中,该函数共有8个重载函数版本可以使用,选一个最合适的即可。
string类型支持但不限于以下这些功能:
功能实现 | 首选操作 | 举例或备注 |
在string对象中任意位置插入字符(串) | insert | 多个重载函数 |
将string对象部分或全部替换为其它字符(串) | assign | 多个重载函数 |
删除string对象的部分或全部内容 | erase | 多个重载函数 |
返回当前string对象的子串或string的副本 | substr | |
在string对象末尾添加字符串(串) | append | “C++”后添加“ Primer” |
将string对象中任意字符(子串)替换为想要的字符(串) | replace | "C++ Primer 3rd Ed."改为"C++ Primer Fourth Ed." |
“精确匹配”查找字符(串)是否在string对象中 | find | 区分大小写 |
在string对象中查找给定字符串中“任意字符 ” | find_first_of | 这个很有用 |
统计string对象中符合条件字符的个数 | find_first_of(s2,pos) | 需要借助while,《C++ Primer》中有很好的例子 |
给定一个字符(串)范围作为参照,查找string对象中与参照的不匹配点 | find_first_not_of | |
“反向查找” | rfind | |
实现字符串之间或子串之间等大小写敏感的字典顺序比较 | compare | 功能强于“关系运算符”,且可与find函数结合使用 |