zoukankan      html  css  js  c++  java
  • C++中string类型的find 函数

    (去膜拜大佬的博客园,结果被自己菜到自闭)

    find

    string中find()返回值是字母在母串中的位置(下标记录),如果没有找到,那么会返回一个特别的标记npos。

    对其返回的下标position的定义:

     string::size_type position;
    前面那一块是一个类型,不要管他(我是小白)
     1  string s("1a2b3c4d5e6f7jkg8h9i1a2b3c4d5e6f7g8ha9i");
     2      string flag;
     3      string::size_type position;
     4      //find 函数 返回jk 在s 中的下标位置
     5      position = s.find("jk");
     6      if (position != s.npos)  //如果没找到,返回一个特别的标志c++中用npos表示,要记住,这是一个很大的数,不是零
     7      {
     8          printf("position is : %d
    " ,position);
     9      }
    10      else
    11      {
    12          printf("Not found the flag
    ");
    13      }
    
    

    再来一组

    s.find_first_of(flag):从头找flag 的位置

    s.find_last_of(flag):倒着找flag的位置

    find("b",5):从第五位往后找b所在的位置

    
    
    1   flag = "c";
    2       position = s.find_first_of(flag);
    3       printf("s.find_first_of(flag) is :%d
    ",position);
    4       position = s.find_last_of(flag);
    5       printf("s.find_last_of(flag) is :%d
    ",position);
    6       position=s.find("b",5);
    7     cout<<"s.find(b,5) is : "<<position<<endl;
    8     //查找s 中flag 出现的所有位置。
    
    

    还有一个更高级的,

    寻找所有的flag

    find(flag,position)!=string::npos

    1  flag="a";
    2     position=0;
    3     int i=1;
    4     while((position=s.find(flag,position))!=string::npos)
    5     {
    6         cout<<"position  "<<i<<" : "<<position<<endl;
    7         position++;
    8         i++;
    9     }

    也可以进行反向查找

    s.rfind()

    1 flag="3";
    2      position=s.rfind (flag);
    3      printf("s.rfind (flag) :%d
    ",position);

    这个地方有个内容,就是当s.find 与s,rfind寻找的地址不一致时,说明不止出现了一次.

    (所以有些题询问是否出现了一次时可以用)


    感谢大佬的博客园对本小白的帮助.
    部分代码参考来自
    https://www.cnblogs.com/wkfvawl/p/9429128.html
    此处应有掌声.
    虽然菜到了自闭,但是还是要继续往下走,去面对新的挑战.


  • 相关阅读:
    HTTP 错误 403.14
    HTTP 错误 404.3
    HTTP 500
    [转]ESCAPE()、ENCODEURI()、ENCODEURICOMPONENT()区别详解
    此计算机当前已将连接限制
    一个由表结构生成表的存储过程
    微信小程序页面跳转传参
    前端性能优化术语
    get请求和post请求的区别
    从输入url到页面呈现的过程
  • 原文地址:https://www.cnblogs.com/zhmlzhml/p/12326885.html
Copyright © 2011-2022 走看看