C++ 中string.find() 函数的用法总结

来源:互联网 发布:处理越狱数据5失败 编辑:程序博客网 时间:2024/05/21 10:55
 #include <string>
#include <iostream>
using namespace std;

void main()
{

[cpp] view plaincopy
  1.  ////find函数返回类型 size_type  
  2. string s("1a2b3c4d5e6f7g8h9i1a2b3c4d5e6f7g8ha9i");  
  3. string flag;  
  4. string::size_type position;  
  5.   
  6. //find 函数 返回jk 在s 中的下标位置   
  7. position = s.find("jk");  
  8.  if (position != s.npos)  //如果没找到,返回一个特别的标志c++中用npos表示,我这里npos取值是4294967295,  
  9.  {  
  10.   cout << "position is : " << position << endl;  
  11.  }  
  12.  else  
  13.  {  
  14.   cout << "Not found the flag" + flag;  
  15.  }   
[cpp] view plaincopy
  1. //find 函数 返回flag 中任意字符 在s 中第一次出现的下标位置  
  2.  flag = "c";  
  3.  position = s.find_first_of(flag);  
  4.  cout << "s.find_first_of(flag) is : " << position << endl;  
[cpp] view plaincopy
  1. //从字符串s 下标5开始,查找字符串b ,返回b 在s 中的下标  
  2. position=s.find("b",5);  
  3. cout<<"s.find(b,5) is : "<<position<<endl;  

 

[cpp] view plaincopy
  1. //查找s 中flag 出现的所有位置。  
  2.  flag="a";  
  3.  position=0;  
  4.  int i=1;  
  5.  while((position=s.find_first_of(flag,position))!=string::npos)  
  6.  {  
  7.   //position=s.find_first_of(flag,position);  
  8.   cout<<"position  "<<i<<" : "<<position<<endl;  
  9.   position++;  
  10.   i++;  
  11.  }  
[cpp] view plaincopy
  1.    
[cpp] view plaincopy
  1. //查找flag 中与s 第一个不匹配的位置  
  2. flag="acb12389efgxyz789";  
  3. position=flag.find_first_not_of (s);  
  4. cout<<"flag.find_first_not_of (s) :"<<position<<endl;  
[cpp] view plaincopy
  1.    
[cpp] view plaincopy
  1.  //反向查找,flag 在s 中最后出现的位置  
  2.  flag="3";  
  3.  position=s.rfind (flag);  
  4.  cout<<"s.rfind (flag) :"<<position<<endl;  
  5. }  


 说明:

1.  如果string sub = ”abc“;

              string s = ”cdeabcigld“;

     s.find(sub) , s.rfind(sub) 这两个函数,如果完全匹配,才返回匹配的索引,即:当s中含有abc三个连续的字母时,才返回当前索引。

     s.find_first_of(sub),   s.find_first_not_of(sub),   s.find_last_of(sub),  s.find_last_not_of(sub)  这四个函数,查找s中含有sub中任意字母的索引。

2.  如果没有查询到,则返回string::npos,这是一个很大的数,其值不需要知道。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 烧了电焊眼睛疼怎么办 用了电焊眼睛痛怎么办 烧电焊脸上红痛怎么办 眼睛让电焊晃了怎么办 眼被电焊打了怎么办 眼镜弹簧腿坏了怎么办 眼镜框铰链坏了怎么办 金属眼镜框歪了怎么办 眼镜框螺丝断了怎么办 眼镜被压变形了怎么办 金属眼镜腿断了怎么办 眼镜弹簧腿断了怎么办 眼镜腿螺丝太紧怎么办 眼镜金属柄断了怎么办 金属眼镜腿折了怎么办 眼镜腿中间断了怎么办 塑料眼镜腿断了怎么办 眼镜上的螺丝拧不紧怎么办 眼镜的把坏了怎么办 把眼镜坐坏了怎么办 梦见眼镜腿掉了怎么办 眼镜的腿掉了怎么办 眼镜腿的螺丝掉了怎么办 爱大爱眼镜掉腿了怎么办 合金眼镜腿断了怎么办 手关节复位h疼痛怎么办 我叫mt红色卡牌怎么办 星盟冲突qq登录怎么办 汽车雷达下雨一直响怎么办 火山小视频封火力怎么办 电脑被当成矿机怎么办 哥华有线机顶盒反应慢怎么办 电脑绣花机编码器坏了怎么办? 伺服电机开起没有力怎么办 西门子冰箱排水孔堵塞怎么办 数控车床西门子系统卡顿怎么办 手机系统不支持多屏互动怎么办 伺服驱动器系统错误报警怎么办 防雷接地电阻不符合规范怎么办 微信支付风控了怎么办 伺服电机没有配原点开关怎么办