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


/*
计算字符串中子串出现的次数。
算法:字符串最长匹配原则,以下是图解:
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);
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM