~$ 存档

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

题目:源串="abcabcabcababcabcabcababcabcab",目标串="abc",求目标串在源串中出现多少次?
这题相对比较简易,用的是原始方法,调用strstr()函数,如果找到目标串,函数返回出现目标串位置的首地址,下一步再将这个指针+1转移到strstr()函数中进行下一轮的匹配。虽然简易,但也是一种匹配方法,所以记录下来。

char *strstr(char *源串,char *目标串);
/*---------完整代码@映雪----------*/

#include <iostream>
using namespace std;
int main()
{    
    char * trace="abc";/*目标串*/        
    char *str="abcabcabcababcabcabcababcabcab";/*源串*/     
    
    char *p;/*中转指针*/    
    int n=0;/*串出现的次数*/    
    do
    {
            if((p=strstr(str,trace))!=NULL)/*查找到串*/
            {
                    ++n;/*计数加1*/
                str=++p;/*前移一位*/
            }
    }while(p);    
    cout<<"字符串"<<trace<<"出现"<<n<<""<<endl;
    return 0;
}

 

posted on 2016-03-20 09:17  LuoTian  阅读(782)  评论(0编辑  收藏  举报