黑马c++----string容器笔记
3.string容器
3.1.1string基本概念
本质: string 是c++风格的字符串,而string本质上是一个类
string和char*区别:
- char*是—个指针
- string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器。
特点: - string类内部封装了很多成员方法,例如:查找find,拷贝copy,册除delete替换replace,插入insert,
- string管理char*所分配的内存,不用担心复制越界和取值越界等,由类内部进行负责
3.1.2 string构造函数
构造函数原型:
string (); //创建—个空的字符串例如: string str;
string(const char* s); //使用字符串s初始化
string(const string& str); //使用一个string对象初始化另一个string对象
string(int n, char c); //使用n个字符c初始化
3.1.3string赋值操作
功能描述:
- 给string字符串进行赋值
赋值的函数原型:
string& operator=( const char* s ); //char*类型字符串赋值给当前的字符串
string& operator-( const string &s ) ; //把字符串s赋给当前的字符串
string& operator=( char c); //字符赋值给当前的字符串
string& assign(const char *s ); //把字符串s赋给当前的字符串
string& assign(const char *s, int n); //把字符串s的前n个字符赋给当前的字符串
string& assign(const string &s ) ; //把字符串s赋给当前字符串
string& assign(int n, char c); //用n个字符c赋给当前字符串
3.1.4 string字符串拼接
功能描述:
·实现在字符串末尾拼接字符串
3.1.5 string查找和替换
功能描述:
·查找:查找指定字符串是否存在
·替换:在指定的位置替换字符串
find:
优化版本:
rfind 和find区别:rfind从右往左查找find从左往右查找
rfind:
替换:
总结:
1.find查找是从左往后,rfind从右往左
2. find找到字符串后返回查找的第一个字符位置,找不到返回-1
3. replace在替换时,要指定从哪个位置起,多少个字符,替换成什么样的字符串
3.1.6 string字符串比较
功能描述:
- 字符串之间的比较
比较方式: - 字符串比较是按字符的ASCII码进行对比
=返回 0
返回 1
<返回 -1
3.1.7 string字符存取
string中单个字符存取方式有两种
string str = "hello";
3.1.8 string插入和删除
功能描述:
对string字符串进行插入和删除字符操作
3.1.9 string子串
功能描述:
·从字符串中获取想要的子串
使用操作: