<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>

            c語言中使用BF-KMP算法實例

            時間:2025-12-11 16:12:26 C語言

            c語言中關于使用BF-KMP算法實例

              直接上代碼

              復制代碼 代碼如下:

              #define _CRT_SECURE_NO_WARNINGS

              #include

              #include

              #include

              #define MAX_SIZE 255 /pic/p>

              typedef unsigned char SString[MAX_SIZE];/pic/p>

              /pic/p>

              int BFMatch(char *s,char *p)

              {

              int i,j;

              i=0;

              while(i < strlen(s))

              {

              j=0;

              while(s[i]==p[j]&&j < strlen(p))

              {

              i++;

              j++;

              }

              if(j==strlen(p))

              return i-strlen(p);

              i=i-j+1; /pic/p>

              }

              return -1;

              }

              /pic/p>

              void getNext(char *p,int *next)

              {

              int j,k;

              next[0]=-1;

              j=0;

              k=-1;

              while(j < strlen(p)-1)

              {

              if(k==-1||p[j]==p[k]) /pic/p>

              {

              j++;

              k++;

              next[j]=k;

              }

              else

              { /pic/p>

              k=next[k];

              }

              }

              }

              /pic/p>

              int KMPMatch(char *s,char *p)

              {

              int next[100];

              int i,j;

              i=0;

              j=0;

              getNext(p,next);

              while(i < strlen(s))

              {

              if(j==-1||s[i]==p[j])

              {

              i++;

              j++;

              }

              else

              {

              j=next[j]; /pic/p>

              }

              if(j==strlen(p))

              {

              return i-strlen(p);

              }

              }

              return -1;

              }

              int main()

              {

              int a, b;

              char s[MAX_SIZE], p[MAX_SIZE];

              printf("請輸入模式串:");

              scanf("%s", &s);

              printf("請輸入子串:");

              scanf("%s", &p);

              a = BFMatch(s, p);

              b = KMPMatch(s, p);

              if(a != -1)

              {

              printf("使用BF算法:%dn", a);

              }

              else

              {

              printf("未匹配n");

              }

              if(b != -1)

              {

              printf("使用KMP算法:%dn", a);

              }

              else

              {

              printf("未匹配n");

              }

              system("pause");

              }

              結果

              復制代碼 代碼如下:

              請輸入模式串:lalalalalaaaa

              請輸入子串:lalaa

              使用BF算法:6

              使用KMP算法:6

              請按任意鍵繼續. . .

            【c語言中使用BF-KMP算法實例】相關文章:

            C語言冒泡排序算法實例12-19

            C語言中使用快速排序算法對元素排序的實例12-17

            C語言中實現KMP算法實例12-14

            C語言插入排序算法及實例代碼02-19

            C語言奇偶排序算法詳解及實例代碼11-12

            C語言選擇排序算法及實例代碼03-16

            Swift與C語言指針結合使用實例12-28

            C語言實現歸并排序算法實例07-13

            C語言輸出旋轉后數組中的最小數元素的算法原理與實例09-26

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看