第18章 string字符串类
字符串处理在程序中应用广泛,在第3章中介绍了C风格字符串的相关内容,C风格字符串是以'\0'(空字符)来结尾的字符数组,在使用时程序员需要考虑字符数组大小的开辟,以及结尾空字符的处理,使用起来有诸多不便,实际上C++提供了string类用于字符串的处理。string类定义在头文件string中,注意同第3章提到的头文件cstring进行区分,cstring中定义的是一些对C风格字符串的处理函数,本章仅对string类的使用方法进行讨论。
本章主要涉及以下知识点。
❑字符串类:介绍string类的优点及作用。
❑字符串类的对象声明:介绍如何声明一个string类的对象。
❑字符串的输入输出:介绍string对象的输入与输出操作。
❑string类的功能:介绍如何使用string类中最常用的几个功能。
18.1 为什么要使用string类
本节的题目也可写成“string类比C风格字符串要好”,之所以抛弃C风格字符串而选用C++标准程序库中的string类,是因为string类同C风格字符串相比,不必担心内存是否够用、字符串的长度以及结尾的空白符等。string作为一个类出现,其集成的成员操作函数功能强大,几乎能满足所有的需求。从另一个角度讲,完全可以把string当成是C++的内置数据类型,放在和int及double同等的位置上。
说明
如无特别说明,本章中提及的字符串均是指string字符串。
同流类库差不多,string类其实是basic_string类模板关于char型的实例化,对应着wchar_t类型和wstring类,本章只讨论string类的用法,wstring类的用法与它完全一致。
同STL一样,basic_string模板中同样定义了size_type类,用来表示元素个数等与系统相关的无符号整型。此外,还有表示元素类型的value_type,对string类而言,value_type等价于char,但对wstring类来说value_type为wchar_t。