C++之std的string字符串常见用法
用法
1)构造函数
string类有多种构造函数,可以初始化字符串。包括用C字符串s初始化string(const char* s),用n个字符c初始化string(int n, char c),以及默认构造函数和复制构造函数等。
2)字符操作
可以通过下标运算符[]和at()函数访问字符串中的字符。下标运算符[]返回当前字符串中第n个字符的位置,但不会进行范围检查;at()函数提供范围检查,当越界时会抛出out_of_range异常。
3)长度和大小
length()和size()函数返回字符串的长度;empty()函数检查字符串是否为空。
4)子字符串
substr(pos, len)函数返回从位置pos开始、长度为len的子字符串。
5)查找
find(str, pos)函数从位置pos开始查找子字符串str在原字符串中第一次出现的位置;
rfind(str, pos)函数从位置pos开始反向查找子字符串str在原字符串中第一次出现的位置。
find_first_of(str, pos):在指定位置pos开始查找字符串str中的第一个字符,并返回它在当前字符串中的位置。
find_last_of(str, pos):在指定位置pos开始反向查找字符串str中的最后一个字符,并返回它在当前字符串中的位置。
find_first_not_of(str, pos):在指定位置pos开始查找字符串str中的第一个非指定字符,并返回它在当前字符串中的位置。
find_last_not_of(str, pos):在指定位置pos开始反向查找字符串str中的最后一个非指定字符,并返回它在当前字符串中的位置。
6)替换
replace(pos, len, str):在指定位置pos开始,替换长度为len的子字符串为str。
replace(pos1, pos2, str):在指定范围[pos1, pos2)内,将字符串str替换为当前字符串的一部分。
replace(iterator first, iterator last, str):将迭代器范围[first, last)内的字符替换为字符串str。
replace(iterator first, iterator last, n, c):将迭代器范围[first, last)内的字符替换为n个字符c。
7)插入和删除
insert(pos, str)函数在位置pos插入字符串str;erase(pos, len)函数删除从位置pos开始的长度为len的子字符串。
8)比较
compare(str)函数比较当前字符串与字符串str的大小关系;下标运算符[]和at()函数也提供比较操作。
9)C风格字符串
c_str()函数返回一个C风格的字符串。
10)其他
string类还提供了其他一些函数,如assign(str)、assign(n, c)、resize(n, c)、clear()等,用于赋值、调整大小和清空字符串等操作。