C++ STL标准模板库中的string

C++ STL标准模板库中的string

ID:37918762

大小:131.00 KB

页数:10页

时间:2019-06-02

C++ STL标准模板库中的string_第1页
C++ STL标准模板库中的string_第2页
C++ STL标准模板库中的string_第3页
C++ STL标准模板库中的string_第4页
C++ STL标准模板库中的string_第5页
资源描述:

《C++ STL标准模板库中的string》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C++STL标准模板库中的string2011年3月23日星期三---------------------------------------------------------------------------------------1前言:string的角色2string使用2.1充分使用string操作符2.2眼花缭乱的stringfind函数2.3stringinsert,replace,erase3string和C风格字符串4string和CharactorTraits5string建议6小结7附录8参

2、考文章前言:string的角色C++语言是个十分优秀的语言,但优秀并不表示完美。还是有许多人不愿意使用C或者C++,为什么?原因众多,其中之一就是C/C++的文本处理功能太麻烦,用起来很不方便。以前没有接触过其他语言时,每当别人这么说,我总是不屑一顾,认为他们根本就没有领会C++的精华,或者不太懂C++,现在我接触perl,php,和Shell脚本以后,开始理解了以前为什么有人说C++文本处理不方便了。举例来说,如果文本格式是:用户名电话号码,文件名name.txtTom23245332Jenny22231231H

3、eny22183942Tom23245332...现在我们需要对用户名排序,且只输出不同的姓名。那么在shell编程中,可以这样用:awk'{print$1}'name.txt

4、sort

5、uniq简单吧?如果使用C/C++就麻烦了,他需要做以下工作:101.先打开文件,检测文件是否打开,如果失败,则退出。2.声明一个足够大得二维字符数组或者一个字符指针数组3.读入一行到字符空间4.然后分析一行的结构,找到空格,存入字符数组中。5.关闭文件6.写一个排序函数,或者使用写一个比较函数,使用qsort排序7.遍历数组,比

6、较是否有相同的,如果有,则要删除,copy...8.输出信息你可以用C++或者C语言去实现这个流程。如果一个人的主要工作就是处理这种类似的文本(例如做apache的日志统计和分析),你说他会喜欢C/C++么?当然,有了STL,这些处理会得到很大的简化。我们可以使用fstream来代替麻烦的fopenfreadfclose,用vector来代替数组。最重要的是用string来代替char*数组,使用sort排序算法来排序,用unique函数来去重。听起来好像很不错。看看下面代码(例程1):#include

7、g>#include#include#include#includeusingnamespacestd;intmain(){ifstreamin("name.txt");stringstrtmp;vectorvect;while(getline(in,strtmp,''))vect.push_back(strtmp.substr(0,strtmp.find('')));sort(vect.begin(),vect.end

8、());vector::iteratorit=unique(vect.begin(),vect.end());copy(vect.begin(),it,ostream_iterator(cout,""));return0;}也还不错吧,至少会比想象得要简单得多!(代码里面没有对错误进行处理,只是为了说明问题,不要效仿).当然,在这个文本格式中,不用vector而使用map会更有扩充性,例如,还可通过人名找电话号码等等,但是使用了map就不那么好用sort了。你可以用map试一试。

9、这里string的作用不只是可以存储字符串,还可以提供字符串的比较,查找等。在sort和unique函数中就默认使用了less和equal_to函数,上面的一段代码,其实使用了string的以下功能:1.存储功能,在getline()函数中101.查找功能,在find()函数中2.子串功能,在substr()函数中3.stringoperator<,默认在sort()函数中调用4.stringoperator==,默认在unique()函数中调用总之,有了string后,C++的字符文本处理功能总算得到了一定补充,

10、加上配合STL其他容器使用,其在文本处理上的功能已经与perl,shell,php的距离缩小很多了。因此掌握string会让你的工作事半功倍。其实,string并不是一个单独的容器,只是basic_string模板类的一个typedef而已,相对应的还有wstring,你在string头文件中你会发现下面的代码:extern"C++"{typedefbasi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。