一、构造方法
子字符串操作:
注意
- 当从string拷贝字符的时候,提供可选的开始位置和计数值。不管我们要求计数值多大,标准库最多拷贝到string结尾
举例
string s1(cp);
string s2(noNull,2); // 正确
string s3(noNull); // 正确
//string s4(noNull, 1100); // 错误
string s5(cp + 6, 5); //
string s6(s1,6);
string s7(s1, 6, 5);
string s8(s1, 6, 100);
// string s9(s1, 23); // 错误,'std::out_of_range'
string s10 = s1.substr(6, 5);
二、string修改
注意
- assign和append无需制定替换string的哪个部分,assign总是替换string中所有内容,append总是将新字符附加到string末尾
- replace函数有两种,一是指定位置和长度,二是通过迭代器范围
- insert函数两种方式,一个下标或者迭代器,新元素插到给定下标之前的位置。
- 指定添加到string中的字符来自:
- 另外一个string
- 字符指针
- 字符列表{}
- 一个字符 + 计数值
三、string搜索
string有如下6种搜索函数:
每种搜索函数有如下四种重载版本:
四、数值转换
实现数值数据和标准库string之间的转换:
搞不懂p
参数的含义。正常使用用不到,就先不研究了。
举例:
int i = 423;
string s = to_string(i);
double d = stod(s);
cout << s << endl << d << endl;
string s2 = "pi: = 3.14";
double d2 = stod(s2.substr(s2.find_first_of("+-.1234567890")));
cout << d2 << endl;
五、compare函数
除了关系运算符,string还提供了一组compare函数,类似c语言中的strcmp