string类-------头文件包含#include<string>
1、string:std提供的标准字符串处理的类 class string;(成员变量,方法)
特点:可变长(动态分配,不再关注字符串的长度)
2、属性:
1)size():string的大小,不包含‘\0’
2)length():string的长度,不包含‘\0’
3)empty():判断字符串是否为空 返回的是bool值
4)capacity():返回的是string当前的容量
5)resize():重置string的大小,并且也可以用字符填充多余的空间
string类型转换成char *-------------c_str() 为了兼容c语言的函数接口
eg :string s("hello world"); char * p = s.c_str();
3、string的输入和输出
1)string s; cin >> s;
2)string s; getline(cin, s); //getline()全局函数,以换行符'\n'隔开
3)string s; cout >> s;
4、string的遍历
1)string s; s[i] ;
2)string s; s.at(i);
[ ] VS at(): [ ]不会进行越界检查,at( )会做出越界检查
5、迭代器iterator :指针(内部)
创建一个string类对象的时,同时会创建两个内部指针,一个指向第一个字母(s.begin()),一个指向最后的‘\0’(s.end())。
string s("hello world");
正向迭代器------string:: iterator begin_it = s.begin();
正向迭代器------string:: iterator end_it = s.end();
反向迭代器------string:: reverse_iterator begin_it = s.rbegin();
反向迭代器------string:: reverse_iterator end_it = s.rend();
const迭代器-----string:: const_iterator begin_it = s.cbegin();
const迭代器-----string:: const_iterator end_it = s.cend();
6、string的赋值
1)运算符 =
2)string s; s.assgin();
7、string的连接
1)运算符 +
2)string s; s.append();
8、string的比较
1)运算符 == > < >= <=
2)string s; s.compare();
9、string的子串
1)string s; s.substr();
10、string的交换
1)string s; s.swap();
11、string的查找
1)string s; s.find(); ---- 找到则返回第一个字符的位置,找不到则返回string:: npos
2)string s; s.find_first_of(search_str); 查找目标字符串(search_str)中任意一个字符在s里面第一次出现的位置。
3)string s; s.find_first_not_of(search_str); s中第一个不是目标字符串中任意一个字符的位置。
4)string s; s.find_last_of(search_str); 查找目标字符串(search_str)中任意一个字符在s里面最后一次出现的位置。
5)string s; s.find_last_not_of(search_str); s中最后一个不是目标字符串中任意一个字符的位置
12、string的替换
1)string s; s.replace();
13、string的插入
1)string s; s.insert();
14、string的删除
1)string s; s.erase(); 参数是迭代器!!!