如何实现得到一个字符串包含另一个字符串的个数,C++有没有自带的函数.
例如"abcdedeabc"包含两个"abc",

解决方案 »

  1.   

    CString str("aaabbbaaabbbaaa"),strSub("aaa");
    int count = 0;
    int pos =str.Find(strSub);while(pos!=-1)
    {
    count++;
    pos=str.Find(strSub,pos+strSub.GetLength());
    }
      

  2.   

    Sstr="abcdedeabc"
    Dstr="abc"
    for( i = 0; i < strlen(Sstr)-strlen(Dstr); i++ )
    {
      if( strcmp(&Sstr[i], Dstr) == 0 )
      {
        nCounter++
      }
    }
    结果是nCounter
      

  3.   

    用strchr()查找首个匹配字符,然后逐个往后找,就可以了,纯c++的,呵呵随便写了个,没怎么测试,自己好好测以下,应该没问题的 :)int chartext()
    {
      int icount = 0;
      char* str = "abcbbbaaabbbaaaaaabcccabcaaabc";
      for (int l = 0; strlen(str) > 2; l++,str++){
        char* chrp = strchr(str, 'a');
        if(*(++chrp) == 'b' && *(++chrp) == 'c'){
          icount++;
          str=chrp;
        }
      }
      return icount;
    }