18.4.10 搜索与查找
string类提供的搜索与查找函数很多,由于篇幅有限,本章便不再展开讲叙,总体上说,string类提供了6种搜索函数,返回值均为size_type,简要列举如下所示。
1.find()系列
返回待查找元素或子串在字符串中第一次出现的位置。举例来说,字符串str为“Welcome to C++World”,使用find函数系列查找单个字符'o'在str中第一次出现的位置,返回结果为4,还可查找子串"to"在str中的位置,返回结果为8。
2.rfind()系列
返回待查找元素或子串在字符串中最后一次出现的位置,如使用rfind函数查找单个字符'o'在str中最后一次出现位置,返回结果为16。
3.find_first_of()系列
返回待查找元素在字符串中第一次出现的位置,如果查找的子串,不是查找整个字符串的匹配,而是搜索子串中的字符首次出现的位置,同样以字符串“Welcome to C++World”为例,使用find_first_of()系列函数查找字符串"abc"在其中首次出现的位置,返回结果为3,此时第一次出现了字符串"abc"中的元素'c'。
4.find_last_of()系列
返回待查找元素在字符串中最后一次出现的位置,如果查找的子串,不是查找整个字符串的匹配,而是搜索子串中的字符最后出现的位置。
5.find_first_not_of()系列
与find_first_of()系列的工作方式类似,不过搜索的是第一个不位于字符串中的字符第一次出现的位置。
6.find_last_not_of()系列
与find_first_of()系列的工作方式类似,不过搜索的是第一个不位于字符串中的字符最后一次所在位置。