欢迎来到专业的唐家秘书网平台! 工作总结 工作计划 心得体会 思想汇报 发言稿 申请书 述职报告 自查报告
当前位置:首页 > 专题范文 > 公文范文 > 正文

c语言中关于使用BF(范例推荐)

时间:2023-02-15 15:55:05 来源:网友投稿

直接上代码复制代码代码如下:#define_CRT_SECURE_NO_WARNINGS#include#include#include#defineMAX_SIZE255下面是小编为大家整理的c语言中关于使用BF(范例推荐),供大家参考。

c语言中关于使用BF(范例推荐)

  直接上代码

  复制代码 代码如下:

  #define _CRT_SECURE_NO_WARNINGS

  #include

  #include

  #include

  #define MAX_SIZE 255 //定义字符串的最大长度

  typedef unsigned char SString[MAX_SIZE];//数组第一个保存长度

  //BF

  int BFMatchchar *s,char *p

  int i,j;

  i=0;

  whilei < strlens

  j=0;

  whiles[i]==p[j]&&j < strlenp

  i++;

  j++;

  ifj==strlenp

  return i-strlenp;

  i=i-j+1; //指针i回溯

  return -1;

  //getNetx

  void getNextchar *p,int *next

  int j,k;

  next[0]=-1;

  j=0;

  k=-1;

  whilej < strlenp-1

  ifk==-1||p[j]==p[k] //匹配的情况下,p[j]==p[k]

  j++;

  k++;

  next[j]=k;

  else

  //p[j]!=p[k]

  k=next[k];

  //KMP

  int KMPMatchchar *s,char *p

  int next[100];

  int i,j;

  i=0;

  j=0;

  getNextp,next;

  whilei < strlens

  ifj==-1||s[i]==p[j]

  i++;

  j++;

  else

  j=next[j]; //消除了指针i的回溯

  ifj==strlenp

  return i-strlenp;

  return -1;

  int main

  int a, b;

  char s[MAX_SIZE], p[MAX_SIZE];

  printf"请输入模式串:";

  scanf"%s", &s;

  printf"请输入子串:";

  scanf"%s", &p;

  a = BFMatchs, p;

  b = KMPMatchs, p;

  ifa != -1

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

  else

  printf"未匹配n";

  ifb != -1

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

  else

  printf"未匹配n";

  system"pause";

  结果

  复制代码 代码如下:

  请输入模式串:lalalalalaaaa

  请输入子串:lalaa

  使用BF算法:6

  使用KMP算法:6

  请按任意键继续. . .

推荐访问:语言 BF c语言中关于使用BF c语言中关于使用BF c语言的使用 c语言的用法 关于C语言