1、string基本概念
string是C++风格的字符串,而string本质上是一个类
string和char*区别
char*是一个指针
string是一个类,类内部封装char*,管理这个字符串,是一个char*型的容器。
特点:
string类内封装了很多成员方法
例如:查找find,拷贝copy,删除delete替换replace,插入insert
string管理char*所分配的内存,不用担心复制和取值越界等,又类内部进行负责
2、string构造函数
构造函数原型:
string()//创建一个空的字符串 例如:string str;
string(const char* s );//使用字符串s初始化
string(const string& str);//使用一个string对象初始化另一个string对象
string(int n,char c);//使用n字符c初始化
3、string赋值操作
功能:给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 s); //用N字符C赋给当前字符串
总结:string的赋值方式很多,operator=这种方式是比较实用的
4、string字符串拼接
功能:实现字符串末尾拼接字符串
函数原型
string& operator+=(const char* str); //重载+=操作符
string& operator+=(const char c); //重载+=操作符
string& operator+=(const string& str); //重载+=操作符
+= 可以拼接单个字符多个字符以及同类型的变量名称
string& append(const char*s); //把字符串S连接到当前字符串结尾
string& append(const char*s,int n); //把字符串S的前N个字符连接到当前字符串结尾
string& append(const char*s,int n); //痛operator+=(const string& str)
string& append(const string &s,int pos,int n); //字符串s中从pos开始的N个字符连接到字符串结尾
append基本跟+=的用法大致一样,但是可以选择位置
5、string查找和替换
功能:查找和替换
int find(const string& str,int pos = 0)const; //查找str第一次出现位置,从pos开始查找
int find(const char& str,int pos = 0)const; //查找s第一次出现位置,从pos开始查找
int find(const char& str,int pos ,int=0)const; //从pos位置查找s的前n个字符第一次位置
int find(const char& str,int pos = 0)const; //查找字符c第一次出现位置
int rfind(const string& str,int pos = npos)const; //查找str最后一次位置,从pos开始查找
int rfind(const char* s,int pos = npos)const; //查找s最后一次出现位置,从pos开始查找
int rfind(const char& s,int pos ,int n)const; //从pos查找s的前n个字符最后一次位置
int rfind(const char c,int pos = 0)const; //查找字符c最后一次出现位置
string& replace(int pos,int n,const string& str);//替换从pos开始n个字符为字符串str
string& replace(int pos,int n,const char* s); //替换从pos开始的n个字符为字符串s
find 和rfind区别:rfind从右往左查找,find从左往右查找
6、string字符串比较
功能:字符串之间的比较
比较方式:字符串比较是按字符的ASCII码进行
=返回0 >返回1 <返回-1
函数原型:int compare(const string &s)const;//与字符串s比较
int copare(const char *s)const; //与字符串s比较
7、string字符存取
string中单个字符存取方式有两种
char& operator[](int n);//通过[]方式取字符
char& at(int n); //通过at方法获取字符
8、string插入和删除
功能:对string字符串进行插入和删除字符操作
string& insert(int pos,const char*s);//插入字符串
string& insert(int pos,const string*s);//插入字符串
string& insert(int pos, int n,const char*s);//在指定位置插入n个字符c
string& erase(int pos,int n=nos)//删除从pos开始的n个字符
总结:插入和删除的其实下标都是从0开始
9、string子串
功能:从字符串中获取想要的子串
函数:string substrate(int pos=0,int n=npos)const;//返回由pos开始的n个字符组成的字符串