博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
模式匹配-BF算法
阅读量:5049 次
发布时间:2019-06-12

本文共 930 字,大约阅读时间需要 3 分钟。

/***字符串匹配算法***/#include
#include
using namespace std;#define OK 1#define ERROR 0#define OVERFLOW -2typedef int Status;#define MAXSTRLEN 255 //用户可在255以内定义最长串长typedef char SString[MAXSTRLEN+1]; //0号单元存放串的长度Status StrAssign(SString T, char *chars) { //生成一个其值等于chars的串T int i; if (strlen(chars) > MAXSTRLEN) return ERROR; else { T[0] = strlen(chars); for (i = 1; i <= T[0]; i++) T[i] = *(chars + i - 1); return OK; }}//填写4.1 BF算法int Index(SString S, SString T, int pos){ //返回模式T在主串S中第pos个字符之后第s一次出现的位置。

若不存在。则返回值为0 //当中,T非空。1≤pos≤StrLength(S) int i=pos; int j=1; while(i<=S[0]&&j<=T[0]) { if(S[i]==T[j]) { i++; j++; } else { i=i-j+2; j=1; } } if(j>T[0]) return i-T[0]; else return 0; }//Index int main() { SString S; StrAssign(S,"bbaaabbaba"); SString T; StrAssign(T,"abb") ; cout<<"主串和子串在第"<<Index(S,T,1)<<"个字符处首次匹配\n"; return 0; }

转载于:https://www.cnblogs.com/claireyuancy/p/7101436.html

你可能感兴趣的文章
JAVA设计模式之简单工厂模式与工厂方法模式
查看>>
③面向对象程序设计——封装
查看>>
【19】AngularJS 应用
查看>>
Spring
查看>>
Linux 系统的/var目录
查看>>
Redis学习---Redis操作之其他操作
查看>>
WebService中的DataSet序列化使用
查看>>
BZOJ 1200 木梳
查看>>
【Linux】【C语言】菜鸟学习日志(一) 一步一步学习在Linxu下测试程序的运行时间...
查看>>
hostname
查看>>
SpringBoot使用其他的Servlet容器
查看>>
关于cookie存取中文乱码问题
查看>>
k8s架构
查看>>
select 向上弹起
查看>>
mysql 多表管理修改
查看>>
group by order by
查看>>
bzoj 5252: [2018多省省队联测]林克卡特树
查看>>
https 学习笔记三
查看>>
Oracle学习之简单查询
查看>>
log4j配置
查看>>