STL string
本质 string是C++风格的字符串,而string本质上是一个类
string和char的区别:
char是一个指针
string是一个类,类内部封装了char,管理这个字符串,是一个char型的容器
特点:
string类内部封装了很多成员方法
例如:查找find,拷贝copy,删除delete替换replace,插入insert
string管理char所分配的内存,不用担心复制越界和取值越界等,由类内部进行负责
string的构造函数
string(); 创建一个空的字符串,例如string str
string(const char s); 使用一个string对象初始化另一个string对象
string(int n, char c); 使用n个字符c初始化
string赋值操作
string& operator = (const char& str); char类型字符串赋值给当前的字符串
string& operator = (const string&s); 把字符串s赋给当前的字符串
string& operator = (char c); 字符赋值给当前的字符串
string& assign(const char s); 把字符串s赋值给当前的字符串
string& assign(const chars, int n); 把字符串s的前n个字符赋给当前的字符串
string& assign(const string &s); 把字符串s赋给当前字符串
string& assign(int n, char s); 用n个字符串c赋给当前字符串
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 string &s); 同3
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 n)const; 从pos查找前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
string字符串比较
ASCLL码 =返回0 >返回1 <返回-1
int compare(const string &s)const; 与字符串s比较
int compare(const char &s)const;
string字符存取
char &operator[] (int n); 通过[]方式获取字符
char &at(int n); 通过at方法获取字符
string插入和删除
string &insert(int pos, const char *s); 插入字符串
string &insert(int pos, const string &str); 插入字符串
string &insert(int pos, int n, char c); 在指定位置插入n个字符c
string &insert(int pos, int n = npos); 删除从pos开始的n个字符
string子串
string substr(int pos = 0, int n = npos)const; 返回由pos开始的n个字符组成的字符串