3.6 小结

C++string对象的优越性是C语言中相关功能难以望其项背的,这给程序研发者带来了极大的便利。在很大程度上,string类使得通过字符型指针来引用字符串已经不再必要了。这就从根本上消除了由于使用未经初始化的指针或具有不正确值的指针造成的一系列软件缺陷。

为了适应字符串中数据长度增长变化的需要,C++字符串动态且透明地扩充其内部的数据存储空间。当字符串中存储的数据增长超过最初分配给它的内存空间边界时,字符串对象就会进行存储管理调用,从堆中提取和归还存储空间。稳定的存储分配方案避免了内存泄漏,并且有可能比“依靠(编程人员)自己转来转去”的内存管理方式更加有效。

string类成员函数为字符串的创建、修改和查找提供了相当广泛的工具集。字符串的比较总是大小写敏感的,但也可对字符串进行大小写不敏感的比较。方法是先将字符串数据复制到具有C语言风格的带有空结束符的字符串中,然后调用大小写不敏感字符串比较函数,暂时将字符串对象中存放的数据转换成单一的大写或小写字母;也可以创建大小写不敏感的字符串类,重载用来创建basic_string对象的字符特性。