在C语言和C++语言中,可用于实现字符串查找功能的函数非常多。在STL中,字符串的查找功能可以实现搜索单个字符、搜索子串;可以实现前向搜索、后向搜索;可以分别实现搜索第一个和最后一个满足条件的字符(或子串)实现搜索第一个和最后一个与给定参考值不相等的字符(或子串)。若查找find()函数和其他函数没有搜索到期望的字符(或子串),则返回npos;若搜索成功,则返回搜索到的第1个字符或子串的位置。
提示
npos是一个无符号整数值,初始值为-1。当搜索失败时,npos表示“没有找到(notfound)”或“所有剩余字符”。
值得注意的是,所有查找find()函数的返回值均是size_type类型,即无符号整数类型。该返回值用于表明字符串中元素的个数或者字符在字符串中的位置。
下面分别介绍和字符查找相关的函数。
1.find()函数和rfind()
find()函数的原型主要有以下4种:
rfind()函数的原型和find()函数的原型类似,参数情况也类似。只不过rfind()函数适用于实现逆向查找。
find()函数和rfind()函数的使用方法参见例2-11。
例2-11
例2-11的执行效果如图2-9所示。
2.find_first_of()函数和find_last_of()函数
find_first_of()函数可实现在源串中搜索某字符串的功能,该函数的返回值是被搜索字符串的第1个字符第1次出现的下标(位置)。若查找失败,则返回npos。
图2-9 例2-11的执行效果
find_last_of()函数同样可实现在源串中搜索某字符串的功能。与find_first_of()函数所不同的是,该函数的返回值是被搜索字符串的最后1个字符的下标(位置)。若查找失败,则返回npos。
上述两个函数的原型分别为:
(www.xing528.com)
例2-12详细阐述了find_first_of()函数和find_last_of()函数的使用方法。这两个函数和find()函数及rfind()函数的使用方法相同,具体参数的意义亦相同。
例2-12
例2-12的执行效果如图2-10所示。
图2-10 例2-12的执行效果
3.find_first_not_of()函数和find_last_not_of()函数
find_first_not_of()函数的函数原型为:
find_first_not_of()函数可实现在源字符串中搜索与指定字符(串)不相等的第1个字符;find_last_not_of()函数可实现在源字符串中搜索与指定字符(串)不相等的最后1个字符。这两个函数的参数意义和前面几个函数相同,它们的使用方法和前面几个函数也基本相同。详见例2-13。
例2-13
例2-13的执行效果如图2-11所示。
图2-11 例2-13的执行效果
总结
本小节主要讲述C++STL中的字符串查找函数。对于所述的6个查找函数,它们的使用形式大致相同,对于每个函数均配备了实例作为参考。请读者能认真对照例题,深刻理解这6个函数的使用方法,仔细体会函数每个参数的意义。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。