码迷,mamicode.com
首页 > 其他好文 > 详细

计算字符串中子串出现的次数。

时间:2020-01-11 22:25:41      阅读:82      评论:0      收藏:0      [点我收藏+]

标签:长度   位置   for   最长匹配   循环   img   str   字符串   一个   

/*
计算字符串中子串出现的次数。
算法:字符串最长匹配原则,以下是图解:
abcabcabc
abc
循环遍历母串前lenT-lenP;
循环遍历字串,用j指向子串,用k记录每一趟母串开始的位置,若p[j]==t[k]则k、j均后移
若j==子串长度lenP,则找到一个子串,次数++。
技术图片
*/
#include<stdio.h>
#include<math.h>
#include<malloc.h>
#include<string.h>
main()
{
    char T[100],P[100];
    gets(T);
    gets(P);
    int i,j,k,c=0,lenT,lenP;
    lenT=strlen(T);
    lenP=strlen(P);
    for(i=0;i<=lenT-lenP;i++){
        for(j=0,k=i;j<lenP&&P[j]==T[k];k++,j++);
        if(j==lenP) c++;
    }
    printf("%d\n",c);
}

计算字符串中子串出现的次数。

标签:长度   位置   for   最长匹配   循环   img   str   字符串   一个   

原文地址:https://www.cnblogs.com/zhaohuan1996/p/12181015.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!