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& 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个字符组成的字符串 |