string
- 一.string的介绍
- 二.string的使用
- 2.1接口(构造类型)
- 2.2string的遍历和访问
- 第一种遍历方式
- 第二种遍历方式
- 补充(反向迭代器)rbeign,rend
- 2.2接口(常用函数)
- 2.2.1反转字符串(reverse)
- 2.2.2扩容(reserve)
- 2.2.3扩容+修改(resize)
- 2.2.5 find和substr
- 补充npos缺省值
一.string的介绍
string就是字符序列的类模板。我们在以后使用字符的时候,最经常运用的就是sting
二.string的使用
2.1接口(构造类型)
string的类型非常的多,设计的有些冗余,我们基本上会用上面的四个最重要的也就够了。
2.2string的遍历和访问
我们先补充两个关键字length和size,这两个都是计算字符串长度的关键字,用法相同,我们一般使用size。
第一种遍历方式
这种其实就是我们之前学习的类似于数组下标的访问方式,这种不是我们的重点。
第二种遍历方式
迭代器是我们以后学习的重点,
我们之后还会学习两个类,一个是vector,一个是list。他们的遍历方式都是只有迭代器的所以我们会了一个后面两个我们也就会了。
这一种本质上也是迭代器的遍历。
下面我们看看迭代器有多么方便。
vector<int> ls;ls.push_back(1);ls.push_back(2);ls.push_back(3);ls.push_back(4);ls.push_back(5);ls.push_back(6);vector<int>::iterator it = ls.begin();while (it != ls.end()){cout << *it << " ";it++;}cout << endl;list<double> l;l.push_back(1.21);l.push_back(2.21);l.push_back(3.21);l.push_back(4.21);l.push_back(5.21);l.push_back(6.21);l.push_back(7.21);list<double>::iterator l1 = l.begin();while(l1 != l.end()){cout << *l1 << " ";l1++;}cout << endl;
补充(反向迭代器)rbeign,rend
string::reverse_iterator it = s1.rbegin();while (it != s1.rend()){cout << *it << " ";it++;}
反向遍历
2.2接口(常用函数)
2.2.1反转字符串(reverse)
这种方法过于麻烦,我们在string有了更简便的东西。
只需要一行就可以解决问题。
2.2.2扩容(reserve)
2.2.3扩容+修改(resize)
resize既可以改变容量还可以改变其中的值
2.2.5 find和substr
find就是从pos位置开始找出符合的字符或字符串。
substr就是从pos位置开始复制len个长度的字符串,形成新的字符串。
我们可以用这两个组合解决下面的问题,提取出文件的后缀。find找出位置,substr复制出后缀。
补充npos缺省值
npos就是string中的一个缺省值,可以把它简单的认为是,字符串的最后一个位置。