• C++中find()函数和rfind()函数的用法


    本文转载自http://blog.csdn.net/youxin2012/article/details/9162415

    string中 find()的应用  (rfind() 类似,只是从反向查找)
    原型如下:
    (1)size_t find (const string& str, size_t pos = 0) const;  //查找对象--string类对象
    (2)size_t find (const char* s, size_t pos = 0) const; //查找对象--字符串
    (3)size_t find (const char* s, size_t pos, size_t n) const;  //查找对象--字符串的前n个字符
    (4)size_t find (char c, size_t pos = 0) const;  //查找对象--字符
    结果:找到 -- 返回 第一个字符的索引
         没找到--返回   string::npos
     
    示例:
     1 #include <iostream>       // std::cout  
     2 #include <string>         // std::string  
     3   
     4 int main ()  
     5 {  
     6   std::string str ("There are two needles in this haystack with needles.");  
     7   std::string str2 ("needle");  
     8   
     9   // different member versions of find in the same order as above:  
    10   std::size_t found = str.find(str2);  
    11   if (found!=std::string::npos)  
    12     std::cout << "first 'needle' found at: " << found << '
    ';  
    13   
    14   found=str.find("needles are small",found+1,6);  
    15   if (found!=std::string::npos)  
    16     std::cout << "second 'needle' found at: " << found << '
    ';  
    17   
    18   found=str.find("haystack");  
    19   if (found!=std::string::npos)  
    20     std::cout << "'haystack' also found at: " << found << '
    ';  
    21   
    22   found=str.find('.');  
    23   if (found!=std::string::npos)  
    24     std::cout << "Period found at: " << found << '
    ';  
    25   
    26   // let's replace the first needle:  
    27   str.replace(str.find(str2),str2.length(),"preposition");  //replace 用法  
    28   std::cout << str << '
    ';  
    29   
    30   return 0;  
    31 }  
    结果:
    first 'needle' found at: 14
    second 'needle' found at: 44
    'haystack' also found at: 30
    Period found at: 51
    There are two prepositions in this haystack with needles
     
     
    其他还有  find_first_of(), find_last_of(), find_first_not_of(), find_last_not_of()
    作用是查找   字符串中 任一个字符 满足的查找条件
    string snake1("cobra");
    int where = snake1.find_first_of("hark");
    返回3  因为 "hark"中 各一个字符 在 snake1--cobra 中第一次出现的是  字符'r'(3为 cobra 中'r'的索引)
    同理:
    int where = snake1.find_last_of("hark");
    返回4  因为 "hark"中 各一个字符 在 snake1--cobra 中最后一次出现的是  字符'a'(3为 cobra 中'r'的索引)
     
    其他同理
     
     
  • 相关阅读:
    JBoss 系列十八:使用JGroups构建块RpcDispatcher构建群组通信应用
    TJU Easier Done than Said?
    [置顶] 程序员面试之道(《程序员面试笔试宝典》)之如何回答系统设计题?
    百度2014校园招聘笔试题 ——深度学习算法研发工程师.
    SpringCloud常用注解
    @PrePersist
    【转】http_load压力测试过程和使用方式
    handlermethodargumentresolver
    云计算的三种服务模式:IaaS,PaaS和SaaS
    pip install 升级时候 出现报asciii码错误的问题。
  • 原文地址:https://www.cnblogs.com/cynthia-dcg/p/6178650.html
Copyright © 2020-2023  润新知