1. string类介绍
string类是C++标准库中给出的一种类类型,其目的是为了代替C语言中的字符串。
C语言中,字符串是以'\0'结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户自己管理,稍不留神可能还会越界访问。
string类通过运算符重载,基本兼容了C语言中字符串的特性,字符串也可隐式类型转换为string类。
在OJ中,有关字符串的题目基本以string类的形式出现,而且在常规工作中,为了简单、方便、 快捷,基本都使用string类,很少有人去使用C库中的字符串操作函数。
2. string类的使用
2.1 string类参考文档
接下来的内容基本都是参考该文档的介绍,进行了相应的总结与拓展。
在使用string类时,必须包含#include<string>以及using namespace std;
2.2 string类的默认成员函数
2.2.1 构造函数
默认构造函数 | string(); |
拷贝构造 | string(const string& str); |
用子串(pos开始,长度为len)拷贝构造 | string(const string& str, size_t pos, size_t len = npos); |
拷贝字符串 | string(const char* s); |
拷贝字符串前n个元素 | string(const char* s, size_t n); |
用字符c填充前n个元素 | string(size_t n, char c); |
npos是string类的静态成员变量,值为类型为size_t,值为整形最大值。
2.2.2 析构函数
摧毁string对象,释放其分配到的所有空间。析构函数在对象销毁时自动调用,无需我们过多注意。