zoukankan      html  css  js  c++  java
  • C++ 中string.find() 函数的用法总结

     #include <string>
    #include <iostream>
    using namespace std;

    void main()
    {


     ////find函数返回类型 size_type  

    string s("1a2b3c4d5e6f7g8h9i1a2b3c4d5e6f7g8ha9i");  

    string flag;  

    string::size_type position;  

      

    //find 函数 返回jk 在s 中的下标位置   

    position = s.find("jk");  

     if (position != s.npos)  //如果没找到,返回一个特别的标志c++中用npos表示,我这里npos取值是4294967295,  

     {  

      cout << "position is : " << position << endl;  

     }  

     else  

     {  

      cout << "Not found the flag" + flag;  

     }   


    //find 函数 返回flag 中任意字符 在s 中第一次出现的下标位置  

    flag = "c";  

    position = s.find_first_of(flag);  

    cout << "s.find_first_of(flag) is : " << position << endl;  


    //从字符串s 下标5开始,查找字符串b ,返回b 在s 中的下标  

    position=s.find("b",5);  

    cout<<"s.find(b,5) is : "<<position<<endl;  


    //查找s 中flag 出现的所有位置。  

    flag="a";  

    position=0;  

     int i=1;  

     while((position=s.find_first_of(flag,position))!=string::npos)  

     {  

      //position=s.find_first_of(flag,position);  

      cout<<"position  "<<i<<" : "<<position<<endl;  

      position++;  

      i++;  

     }  


    //查找flag 中与s 第一个不匹配的位置  

    flag="acb12389efgxyz789";  

    position=flag.find_first_not_of (s);  

    cout<<"flag.find_first_not_of (s) :"<<position<<endl;  


     //反向查找,flag 在s 中最后出现的位置  

    flag="3";  

    position=s.rfind (flag);  

    cout<<"s.rfind (flag) :"<<position<<endl;  

    }  


     说明:

    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,这是一个很大的数,其值不需要知道。




    LOFTER:hgfalgorithm   http://hgfal.lofter.com/post/28eef2_f0d74b
  • 相关阅读:
    WF4.0 Beta1 自定义跟踪
    WF4.0 Beta1 流程设计器与Activity Designer
    新版本工作流平台的 (二) 权限算法(组织结构部分)
    WF4.0 Beta1 WorkflowInvoker
    WF4.0 基础篇 (十) Collection 集合操作
    WF4.0 基础篇 (十五) TransactionScope 事物容器
    WF4.0 基础篇 (六) 数据的传递 Arguments 参数
    WF4B1 的Procedural Activity 之InvokeMethod , InvokeMethod<T> 使用
    WF4.0 Beta1 异常处理
    WF4.0 Beta1 变量 Variables
  • 原文地址:https://www.cnblogs.com/hgfgood/p/4248321.html
Copyright © 2011-2022 走看看