zoukankan      html  css  js  c++  java
  • C++ string 字符串查找匹配

    在写C++程序中,总会遇到要从一个字符串中查找一小段子字符串的情况,对于在C中,我们经常用到strstr()或者strchr()这两种方法。而对于C++的string,我们往往会用到find()。

    C++:#inlcude<string>
    C: #include<string.h>

    find():在一个字符串中查找一个指定的单个字符或字符数组。如果找到,就返回首次匹配的开始位置;如果没有查找到匹配的内容,就返回string::npos。
    find_first_of():在一个目标串中进行查找,返回值是第一个与指定字符组中任何字符匹配的字符位置。如果没有查找到匹配的内容,则返回npos。
    find_last_of():在一个目标串中进行查找,返回最后一个与指定字符组中任何字符匹配的字符位置。如果没有查找到匹配的内容,则返回npos。
    find_first_not_of():在一个目标串中进行查找,返回第一个与指定字符组中任何字符都不匹配的元素位置。如果找不到那样的元素则返回npos。
    find_last_not_of():在一个目标串中进行查找,返回下标值最大的与指定字符组中任何字符都不匹配的元素的位置。若找不到那样的元素则返回npos。
    rfind():对一个串从尾至头查找一个指定的单个字符或字符组。如果找到,就返回首次匹配的开始位置;如果没有查找到匹配的内容,则返回npos。

    find(string, int):第一个参数用来指示要查找的字符,第二个参数用来表示从字符串的何处开始查找子串(默认的查找位置是0)。

    举例:字符串匹配

     1 #include "stdafx.h"
     2 #include<iostream>
     3 #include<math.h>
     4 #include<string>
     5 using namespace std;
     6 
     7 int _tmain(int argc, _TCHAR* argv[])
     8 {
     9 string T;//原串
    10 string P;//模式
    11 while(cin>>T>>P)
    12 { 
    13 int count=0;
    14 int begin=-1;
    15 while((begin=T.find(P,begin+1))!=string::npos)
    16 {
    17 count++;
    18 }
    19 cout<<count<<endl;
    20 }
    21 int z;
    22 cin>>z;
    23 return 0;
    24 }

    转载请标明出处:http://www.cnblogs.com/fnlingnzb-learner/p/5831454.html

  • 相关阅读:
    supervisord 小记
    linux 查找文件与进程常用命令
    旷世奇坑!!!spring 不能自动注入
    RPM方式安装MySQL5.6
    linux 常见问题&解决方案
    linux下的守护进程
    java 读写properties
    良好的编码规范
    良好的日志记录规范
    两种方式实现适配器
  • 原文地址:https://www.cnblogs.com/fnlingnzb-learner/p/5831454.html
Copyright © 2011-2022 走看看