STL容器—string容器
1. string概述
相较于C语言的字符串,c++标准库定义了自己的字符串string类,使用string是
需要导入头文件#include<string>
2. C语言与c++字符串的区别:
2.1 C语言的char*是一个指针
2.2 c++的string是一个类
2.3 string封装了char*,管理字符串,是一个char*类型的容器
3. string容器不用考虑内存释放和越界的问题
string管理char*所分配的内存。每一次string的复制,取值都由string类负责维
护,不用担心复制越界和取值越界
4. string容器的常用操作
4.1 string的构造函数
string();
string(const string& str);
string(const char* s);
string(int n, char c);
4.2 string的基本赋值操作
string& operator=(const char* s);
string& operator=(const string &s);
string& operator=(char c);
string& assign(const char *s);
string& assign(const char *s, int n);
string& assign(const string &s);
string& assign(int n, char c);
string& assign(const string &s, int start, int n);
4.3 string的存取字符操作
char& operator[](int n);
char& at(int n);
4.4 string拼接操作
string& operator+=(const string& str);
string& operator+=(const char* str);
string& operator+=(const char c);
string& append(const char *s);
string& append(const char *s, int n);
string& append(const string &s);
string& append(const string &s, int pos, int n);
string& append(int n, char c);
4.3 string查找和替换
int find(const string& str, int pos = 0) const;
int find(const char* s, int pos = 0) const;
int find(const char* s, int pos, int n) const;
int find(const char c, int pos = 0) const;
int rfind(const string& str, int pos = npos) const;
int rfind(const char* s, int pos = npos) const;
int rfind(const char* s, int pos, int n) const;
int rfind(const char c, int pos = 0) const;
string& replace(int pos, int n, const string& str);
string& replace(int pos, int n, const char* s);
4.3 string比较操作
bool operator==(const string &s);
int compare(const string &s) const;
int compare(const char *s) const;
4.3 string子串、插入、删除
string substr(int pos = 0, int n = npos) const;
string& insert(int pos, const char* s);
string& insert(int pos, const string& str);
string& insert(int pos, int n, char c);
string& erase(int pos, int n = npos);