string类是C++中一个非常常用的类,它提供了许多方法来操作字符串。以下是一些常用的string类方法:
- 构造函数:
- string(): 创建一个空的字符串。- string(const char* str): 用一个C风格字符串来初始化一个新的字符串。
- string(size_t n, char c): 创建一个由n个字符c组成的字符串。
 
- 赋值操作:
- operator=(const char* str): 将C风格字符串赋值给字符串。- operator=(const string& other): 复制另一个字符串。
 
- 字符串连接:
- append(const char* str): 连接一个C风格字符串到当前字符串的末尾。- append(size_t n, char c): 连接n个字符c到当前字符串的末尾。
- += (const char* str): 连接一个C风格字符串到当前字符串的末尾。
 
- 字符串分割:
- split(const char* delim): 根据给定的分隔符将字符串分割为子串,并返回一个包含这些子串的vector。
- 字符串查找:
- find(const char* str, size_t pos = 0): 在当前字符串中搜索给定的子串,并返回第一次出现的位置(从0开始)。如果未找到,返回- string::npos。- rfind(const char* str, size_t pos = npos): 在当前字符串中向后搜索给定的子串,并返回最后一次出现的位置(从0开始)。如果未找到,返回- string::npos。
 
- 字符串替换:
- replace(size_t pos, size_t len, const char* str): 在当前字符串中,从pos开始替换len个字符为给定的C风格字符串。
- 字符串比较:
- compare(const char* str) const: 比较当前字符串与给定的C风格字符串。如果相等返回0,小于返回负数,大于返回正数。- operator==(const char* str, const string& other): 检查两个字符串是否相等。
- operator!=(const char* str, const string& other): 检查两个字符串是否不相等。
 
- 字符串截取:
- substr(size_t pos, size_t len = npos) const: 返回一个新的字符串,它是当前字符串从pos开始的len个字符。如果未指定len,那么将返回从pos到当前字符串末尾的所有字符。
- 字符串遍历:
* begin() const: 返回一个指向当前字符串第一个字符的迭代器。
* end() const: 返回一个指向当前字符串末尾的迭代器。
- 其他方法:
- clear(): 清空当前字符串。- reserve(size_t n): 改变当前字符串的容量(保留的空间)。如果n比原来的容量小,此函数不会做任何事。如果n比原来的容量大,此函数将添加新的空闲空间。
- capacity() const: 返回当前字符串的容量(保留的空间)。
- empty() const: 如果字符串为空,则返回true,否则返回false。
 
除了上述提到的方法,string类还有很多其他常用的方法,例如:
- 插入字符:
- insert(size_t pos, const char* str): 在当前字符串的指定位置插入给定的C风格字符串。
- 删除字符:
- erase(size_t pos, size_t len = npos): 从当前字符串的指定位置删除len个字符。如果未指定len,那么将删除从pos到字符串末尾的所有字符。
- 替换字符:
- replace(size_t pos, size_t len, char c): 用给定的字符c替换当前字符串中从pos开始的len个字符。
- 查找第一个/最后一个字符的位置:
- find_first_of(const char* str, size_t pos = 0): 返回第一个匹配给定字符串中任何一个字符的位置。- find_last_of(const char* str, size_t pos = npos): 返回最后一个匹配给定字符串中任何一个字符的位置。
 
- 替换子串为其他子串:
- replace(size_t pos, size_t len, const char* str, size_t strPos, size_t strLen): 用给定子串替换当前字符串中从pos开始的len个字符,成为新的子串。
- 反转字符串:
- swap(string& other): 与另一个字符串交换内容。
- 字符串转换为大写/小写:
- make_lower(): 将当前字符串的所有字符转换为小写。- make_upper(): 将当前字符串的所有字符转换为大写。
 
- 字符计数:
- count(const char* str, size_t pos = 0) const: 返回从pos开始匹配给定字符串的次数。
- 查找子串并返回其长度:
* find_first_not_of(const char* str, size_t pos = 0) const: 返回第一个不匹配给定字符串中任何一个字符的位置,并返回其长度。
- 其他实用函数:
- copy(char* buf, size_t n, size_t pos = 0) const: 将当前字符串的前n个字符复制到给定的字符数组buf中。- compare(const char* str) const: 比较当前字符串与给定的C风格字符串。如果相等返回0,小于返回负数,大于返回正数。
- substr(size_t pos, size_t len = npos) const: 返回一个新的字符串,它是当前字符串从pos开始的len个字符。如果未指定len,那么将返回从pos到当前字符串末尾的所有字符。