相较于C,C++中引入了string类,这使得存储字符串时不易溢出,更加安全, 而其中包含的各种操作字符串的函数,使用起来更是方便。下面是其中几种常见的函数的使用方法:
begin() //返回字符串的首个字符的下标位置
end() //返回字符串(末位+1)的下标位置
使用end()时若想取得位于末位的字符,需对end()进行- 1操作:end()-1,否则得到的是一个空字符 值的注意的是,因为begin()和end()的函数返回值类型类似指针(迭代器),所以需要使用 * 进行取值操作。
使用样例:
运行结果:
size()
length() //都可返回字符串的长度,用法相同。
使用样例:
运行结果:
find(const string& str, size_t pos = 0) //查找某一段字符,返回该段字符首字符的下标位置
find()函数有4种原型声明,以上是其中一种。
形参表中的str是需要查找的字符段,pos是查找时的起始字符的下标位置(即决定从哪个位置开始查找)若不设置pos的值,默认从0开始查找。 eg: c.find(‘H’,2)表示从字符串 c 的第三个字符开始查找字符’H’ 执行find()函数,若找到了用户设置的str,返回其在c中的下标,否则返回-1,或者说 npos 的值。npos的是类型的最大值,在这里表示没有找到匹配的字符段。 这里我的 npos 值为18446744073709551615。
使用样例:
运行结果:
find_first_of(const string& str, size_t pos = 0) //查找某一段字符,返回该字符段中任意一个字符第一次出现在字符串中的位置
first_last_of(const string& str, size_t pos = 0) //查找某一段字符,返回该字符段中任意一个字符最后一次出现的位置
find_first_of()和find_last_of()的函数原型声明和find函数基本一致,用法也基本相同。 需要注意的是若查找的不是单个字符,而是字符段,那么他会返回该字符段中任意一个字符第一次出现(或最后一次出现)的位置(即只要查找到某一个属于该字符段的字符,就输出这个字符第一次出现(或最后一次出现)的下标,不一定非得是字符段的首字符)。
使用样例:
运行结果:
若需要反向查找,使用rfind()相关函数即可,只是在find()函数前添加一个 r 而已。
insert() //在指定位置插入字符段
三种常用方法: 1)insert(2,"@@@"); //在下标为2的字符后插入字符串"@@@" 2) insert(2,3,’@’); //在下标为2的字符后插入3个字符’@’ 3)insert(2,"@@@@@",2,3); //在下标为2的字符后插入位于字符串"@@@@@"[2,3]区间的字符段
使用样例:
运行结果:
erase() //删除指定位置的字符
三种常用方法: 1)erase(3,1); //删除下标为 3 的字符后的 1 个字符 2)erase(first,end); //删除以first为起点,end为终点包含的字符段 3)earse(position); //删除字符串中第position个字符
因为2)3)中的函数返回值类型也是迭代器,所以不能直接把整型数据赋给first,end,position。这里我们可以使用begin()和end()来计算需要删除的字符的位置
使用样例:
运行结果:
除了这些还有很多很多种函数和不同的用法,需要我们不断学习。