string的基本概念
本质:
string时C++风格的字符串,而string本质上是一个类。
string和char*的区别:
char*是一个字符指针。而string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器。
特点:
1、string类内部封装了很多的成员方法
eg:查找find、拷贝copy、删除delete、替换replace、插入insert
2、string管理char*所分配的内存,不用担心复制越界和取值越界等,由类内部进行负责。
string构造函数
string构造函数作用:对字符串进行初始化
初始化的方式有4种
原型分别为:
1、string();//无参构造--创建一个空的字符串。eg:string str;
2、string(const char* s);//有参构造---初始化字符串
3、string(const string &str);//拷贝构造---使用一个string对象初始化另一个string对象
4、string(int n,char c);//使用n个字符c进行初始化
eg:
string的赋值操作
给string赋值有7种方法
原型分别为:
1、string& operator=(const char* s);//char*类型字符串赋值给当前的字符串
2、string& operator=(const string &s);//将字符串s赋给当前的字符串(类似于拷贝构造)
3、string& operator=(char c);//将字符c赋值给当前的字符串
4、string& assign(const char*s);//把字符串s赋给当前字符串
5、string& assign(const char* s,int n);//把字符数组s中的前n个字符赋给当前字符串
6、string& assign(const string &s);//把字符串s赋给当前字符串
7、string& assign(int n,char c);//将n个字符c赋给当前字符串
eg:
string字符串拼接
作用:实现在字符串末尾拼接字符串
拼接字符串有两大方法,一种是用重载后的+=,另一种是用string提供的成员函数append来实现。
字符串拼接函数原型:
eg:
string查找和替换
查找:查找指定位置的字符串是否存在
替换:在指定的位置替换字符串
常用的查找和替换函数
函数原型:
int find(const string &str,int pos=0)const;//从pos开始(默认从0开始),查找str第一次出现的位置
int find(const char c,int pos=0)const;//从pos开始,查找字符c第一次出现的位置
int rfind(const string &str,int pos=npos)const;//从str最后一个位置从右向左查找str第一次出现的位置
int rfind(const char c,int pos=0)const;//查找字符c最后一次出现的位置
string& replace(int pos,int n,const string &str);//用str替换从pos开始的n个字符
eg:
string字符串比较
比较方式:
字符串比较是按字符的ASCII码进行对比的
若两个字符串相等,则返回0
若大于,则返回1
若小于,则返回-1
string用于比较的内置函数为compare
eg:
string字符存取
string中单个字符的存取方式有两种:(可读可写)
一种是用[]进行访问,另一种是用at进行访问。
eg:
string插入与删除
string插入用insert,删除用erase
eg:
string子串
求string子串的函数名为substr
函数原型:
string substr(int pos=0,int n=npos)const;//返回由pos开始的n个字符组成的字符串
具体应用实例: