目录
C++中string类的详细使用
作用
存储字符的容器(字符串)
注意:
使用时需要调用头文件 <string>
构造函数
语法:
string(); //创建一个空的字符串 例如: string str;
string(const string& str); //使用一个 string 对象初始化另一个 string 对象
string(const char* s); //使用字符串 s 初始化
string(int n, char c); //使用 n 个字符 c 初始化 v
基本赋值操作
语法:
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 c); //用n个字符c赋给当前字符串
string& assign(const string &s, int start, int n); //将s从 start开始n个 字符赋值给字符串
获取字符串长度
语法:
int size();
int length();
注意:不包含\0
存取字符操作
语法:
char& operator[](int n); //通过[]方式取字符,下标越界不会抛出异常
char& at(int n); //通过at方法获取字符,下标越界会抛出异常
拼接操作
语法:
string& operator+=(const string& str); //重载+=操作符
string& operator+=(const char* str); //重载+=操作符
string& operator+=(const char c); //重载+=操作符
string& append(const char *s); //把字符串s连接到当前字符串结尾
string& append(const char *s, int n); //把字符串s的前n个字符连接到当前字符 串结尾
string& append(const string &s); //同operator+=()
string& append(const string &s, int pos, int n); //把字符串s中从pos开始的 n个字符连接到当前字符串结尾
string& append(int n, char c); //在当前字符串结尾添加n个字符c
查找和替换
语法:
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查找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 注意:查找是不存在返回-1
比较操作
语法:
compare函数在当前对象比参数 > 时返回正数,< 时返回负数,== 时返回0。
比较区分大小写,比较时参考字典顺序,排越前面的越小。大写的A比小写的a小。
int compare(const string &s) const; //与字符串s比较
int compare(const char *s) const; //与字符串s比较
截取操作
语法:
string substr(int pos = 0, int n = npos) const; //返回由pos开始的n个字符 组成的字符串
插入与删除
语法:
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& erase(int pos, int n = npos); //删除从Pos开始的n个字符
string与char *转换
语法:
//string转char*
string str = "itcast";
const char* cstr = str.c_str();
//char*转string
char* s = "itcast";
string str(s);