鱼C论坛

 找回密码
 立即注册
查看: 1621|回复: 2

[技术交流] string的搜索操作

[复制链接]
发表于 2017-4-23 17:20:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
string的搜索操作
s.find(args)                                    查找s中args第一次出现的位置
s.rfind(args)                                   查找s中args最后一次出现的位置
s.find_first_of(args)                       在s中查找args中任何一个字符第一次出现的位置
s.find_last-_of(args)                      在s中查找args中任何一个字符最后一次出现的位置
s.find_first _not_of(args)               在s中查找第一个不在args中的字符
s.find_last_not_of(args)                在s中查找最后一个不在args中的字符
如果找到返回字符出现的下标,否则返回string::npos,返回类型为string::size_type
以上6个函数都分别有4种重载形式,pos可理解为下标
将args 分别替换为:
c,pos                                              从s中位置pos处开始查找字符c,pos默认为0
s2,pos                                            从s中位置pos处开始查找字符串s2,pos默认为9
cp,pos                                            从s中位置pos处开始查找cp指向的以空字符结尾的C风格字符串,pos默认为0
cp,pos,n                                         从s中位置pos开始查找指针cp指向的数组的前n个字符,pos和n无默认值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-4-23 17:21:30 | 显示全部楼层
好久没上来过了,水点经验
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-23 17:56:18 | 显示全部楼层
本帖最后由 花开自有丶花落 于 2017-4-23 17:58 编辑

最常见的形式是在字符串中查找子字符串
string::size_type pos = 0;
while( ( pos = s,find_first_of(number,pos) ) != string::npos )   
{                                                                                               
    cout  << pos <<  " :" << s[pos] << endl;                              
    ++pos;                                                                                 
}
//如果找到number(不论number是字符串还是字符还是字符串),返回其下标并赋给pos,然后以其做下标打印,接下来递增继续查找,如果不其下标并赋给pos,然后以其做下标打印,接下来递增继续查找,如果不递增会从pos出开始查找,然而pos处就是目标,会不断返回以致陷入死循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-28 05:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表