計算字符串中子串出現的次數。


/*
計算字符串中子串出現的次數。
算法:字符串最長匹配原則,以下是圖解:
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