string 类型中find函数用法和string::npos的含义

string::npos参数

—— npos 是一个常数,用来表示不存在的位置
eg:有两个字符串a、b,判断a字符串是否包含b字符串

//如果字符串不存在包含关系,那么返回值就一定是npos
if(a.find(b)!=string::npos)
{
    cout<<"yes"<<endl;
}
else
{
    cout<<"no"<<endl;
}

find()函数

string中find()返回值是字母在母串中的位置(下标记录),
如果没有找到,那么会返回一个特别的标记npos。
(返回值可以看成是一个int型的数)
用法:
str.find(“字符串”) 返回值是字符在母串s中的下标位置;

str.find(“字符串”,num) 从s的下标num开始,查找字符串,返回字符串在s中的下标;

返回子串出现在母串中的首次出现的位置,和最后一次出现的位置:
s.find_first_of(num)
s.find_last_of(num)
or:
pos=s.find(str,pos) 查找s中str出现的所有位置。
pos=s.find_first_of(str) 返回str出现在母串s中的首次出现的位置
pos=s.find_last_of(str) 返回str出现在母串s中的最后一次出现的位置

反向查找子串在母串中出现的位置,通常我们可以这样来使用,
当正向查找与反向查找得到的位置不相同说明子串不唯一:

1     //反向查找,flag 在s 中最后出现的位置
2     flag="3";
3     position=s.rfind (flag);
4     printf("s.rfind (flag) :%d\n",position);

猜你喜欢

转载自blog.csdn.net/Faracall/article/details/88603934