C++ string类是特殊化的容器,与顺序容器如vector具有很多相似的操作。string 类型支持长度可变的字符串,与char*的字符串比较起来,使用string类
不必担心内存是否足够、字符串长度等问题。C++ 标准库将负责管理与存储字符相关的内存,以及提供各种有用的操作。要使用 string 类型对象,必
须包含相关头文件。如果提供了合适的 using 声明,那么编写出来的程序将会变得简短些:
#include <string>using std::string;
1、构造函数:
2、字符操作:
对字符串的字符进行处理,需要包含cctype 头文件。
4、赋值操作:
5、连接操作:
当进行 string 对象和字符串字面值混合连接操作时,+ 操作符的左右操作数必须至少有一个是 string 类型的:
string s1 = "hello"; string s2 = "world"; string s3 = s1 + ", "; // 正确 string s4 = "hello" + ", "; //错误,没有string类型 string s5 = s1 + ", " + "world"; // 正确 string s6 = "hello" + ", " + s2; // 错误,前两个字符串字面值相加
6、比较函数:
7、查找函数:
8、替换函数:
9、插入函数:
其他操作
string类迭代器:string 类与STL容器类似,提供了向前和向后遍历的迭代器,在此不再做更多的介绍,需要了解请参考STL容器操作总结的第一部分内
容。
用 c_str() 返回的这个数组的数据是临时的,当有一个改变这些数据的成员函数被调用后,其中的数据就会失效。因此要么现用先转换,要么把它的数
据复制到用户自己可以管理的内存中。最好使用 strcpy 函数进行复制:
char*c=new char[20]; string s="1234"; //c = s.c_str(); //不好的方式,赋值之后,当s改变时,c同样会改变 strcpy(c,s.c_str());
c_str()返回一个客户程序可读不可改的指向字符数组的指针,因此不需要手动释放或删除这个指针。
copy 函数返回真正从对象中复制的字符,因此要确保:cptr 指向的空间足够保存n个字符。