字符串string
一、string类简介
string类是C++中用来操作字符串序列的、可以自身管理内存的容器,自身携带的构造函数和析构函数,可以让我们直接使用而不必关心内存的分配细节,可以说是C++中最让人放心的一个类了。
它支持元素的存取访问、字符串比较、字符串内容的修改和替换、字符串连接、字符串的查找和搜索、字符串的IO操作、可以方便的获取器大小和容量等等。因此,无论学习何种语言,字符串必是每一个程序员的最爱!
二、string类的使用
1、string类的初始化方法
string strEmpty; // 空字符串
string str1 = "ISMILELI";
string str2(str1); // str1内容复制给str2
string str3(str1,2,5);// 从str1的第2个元素开始复制5个数据给str2
string str4(str1,5,'S'); // 赋值给str4五个S
string str5(str1.begin(),str1.end()); // 迭代器的方式赋值
string str6(str1,6); // 把str1的前六个赋值给str5
cout << "str1:" << str1<<endl;
2、string类的大小
size()和length()是比较常用的获得字符串中字符个数的方法,两个效果相同。
max_size()是返回string最大能包含的字符串数,当超过时编译器会抛出length_error的异常。
capacity()是重新分配内存之前string中能包含的最大字符个数。
3、string类的元素访问
string类支持下标操作[]和函数at()访问,两者的不同之处是下标操作不检查索引的有效性,超出下标时会引起不可测的麻烦;使用at()函数会检查下标的有效性,超出下标时会抛出异常out_of_range。注意这两个操作返回的都是“引用”,当字符串被重新分配内存后可能会引起错误。第一个下标为0,最后一个为length()-1。
4、string比较操作
1》使用常用的运算符比较:>,<,==,>=,<=,!=。
2》使用compare()函数,能够区分字母的大小写比较,相同返回0,按顺序先大于返回正数,否则为负数。
string str7("abcdefg");
string