字符串匹配:字符串中查找某子串
需求
- 需求
- 具体算法
- 常规方法
- 程序
- KMP算法
- 程序
- 后续
我们在平时的软件开发,尤其是嵌入式开发,字符串匹配是非常重要的一个算法。而目前常用的字符串匹配算法有很多,下面就来介绍几个。
具体算法 常规方法对于字符串存放在字符数组的定长顺序存储结构中,可以利用计数指针指示主串和模式串当前正在比较的字符位置。算法的基本思路是:从主串的第i个字符起和模式串的第一个字符比较。若相等,则继续比较后续字符;否则从主串的下一个字符起再重新和模式串的第一个开始比。知道模式串被比较完成,代表主串中存在模式串。
程序int index(string S,stringT,int pos)
{
int i,j;
i=pos;
j=1;
while(i 0,代表下次匹配跳到j 之前的某个字符,而不是跳到开头,且具体跳过了k 个字符。
程序
首先我们需要求next数组
typedef struct
{
char data[MaxSize];
int length; //串长
} SqString;
void GetNext(SqString t,int next[]) //由模式串t求出next值
{
int i,k;
i=0;k=-1;
next[0]=-1;//第一个字符前无字符串,给值-1
while (i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?