string

本质:string是C++风格的字符串,而string本质上是一个类;

string和char *的区别

  • ​char *​​是一个指针,指向了字符串的首地址(数组的第一个元素);
  • string是一个类,类内部封装了​​char *​​​,管理这个字符串,是一个​​char *​​型的容器;

特点:string类内部封装了很多成员方法,例如:查找find、拷贝copy、删除delete、替换replace、插入insert等;string管理​​char *​​所分配的内存,不用担心复制越界和取值越界等,由类内部进行负责;

成员函数

功能说明

创建字符串

string();

构造函数,创建一个空的字符串

string(const char* s);

构造函数,使用字符串s初始化

string(const string& str);

构造函数,使用一个string对象初始化

string(int n, char c)

构造函数,使用n个字符c初始化

string赋值操作

string& operator=(const char* s);

运算符=重载,char*类型字符串赋值给当前字符串

string& operator=(const string& s);

运算符=重载,字符串s赋值给当前的字符串

string& operator=(char c);

运算符=重载,字符赋值给当前的字符串

string& assign(const char* s, int n);

把字符串s的前n个字符赋给当前的字符串

string& assign(const string& s);

把字符串s赋给当前字符串

string& assign(int n, char c);

用n个字符c赋给当前字符串

string字符串拼接

string& operator+=(const char* s);

运算符+=重载,char*类型字符串拼接到当前字符串之后

string& operator+=(const string& s);

运算符+=重载,字符串s拼接到当前的字符串之后

string& operator+=(char c);

运算符+=重载,字符拼接到当前的字符串之后

string& append(const char* s);

把字符串s拼接到当前字符串之后

string& append(const char* s, int n);

把字符串s的前n个字符拼接到当前字符串之后

string& append(const string& s);

把字符串s拼接到当前字符串之后

string& append(const string &s, int pos, int n);

把字符串s从pos开始的n个字符拼接到当前字符串之后

string查找

int find(const string& str, int pos = 0) const;

查找str第一次出现位置,从pos开始查找

int find(const char* s, int pos = 0) const;

查找s第一次出现位置,从pos开始查找

int find(const char* s, int pos, int n) const;

从pos位置查找s的前n个字符第一次出现位置

int find(const char c, 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 npos) const;

从pos查找s的前n个字符最后一次出现位置

int rfind(const char c, int pos = 0) const;

查找字符c最后一次出现位置

string替换

string& replace(int pos, int n, const string& str);

替换从pos开始,n个字符为字符串str

string& replace(int pos, int n, const char* s);

替换从pos开始,n个字符为字符串s

string比较

int compare(const string& s) const;

与字符串s比较,=返回0,>返回1,<返回-1

int compare(const char* s) const;

与字符串s比较,=返回0,>返回1,<返回-1

string字符存取

​char& operator[](int n);​

运算符[]重载,通过[]方式取字符

char& at(int n);

通过at方法获取字符

string字符插入

string& insert(int pos, const char* s);

在pos位置插入字符串s

string& insert(int pos, const string& str);

在pos位置插入字符串str

string& insert(int pos, int n, char c);

在pos位置插入n个字符c

string字符删除

string& erase(int pos, int n = npos);

删除从pos开始的n个字符

string子串

string substr(int pos = 0, int n = npos) const;

返回由pos开始的n个字符组成的字符串