# include <stdio.h>
# include <malloc.h>
# include <stdlib.h>
# define MAXSTRLEN 255
typedef unsigned char Sstring [MAXSTRLEN + 1];
int index (Sstring S, Sstring T) //这个写法虽然效率也不怎么高,但是写法真是有点别致。我是参考自严蔚敏视频配套讲义写的
//主要结构if...else if...else {while ... if ... else...}的整体构思很经典的!!!
{
int i = 1;
while (i <= S[0] - T[0] + 1)
{
if (S[i] != T[1])
{
++i;
printf("头不匹配, i = %d\n", i);
}
else if (S[i + T[0] - 1] != T[T[0]])
{
++i;
printf("头匹配尾不匹配, i = %d\n", i);
}
else
{
printf("头尾匹配, i = %d\n", i);
int j = 2;
int k = 1;
while (T[j] == S[i + k] && j < T[0])
{
++k;
++j;
printf("匹配到T中第%d个字符, i = %d, j = %d, k = %d\n", j, i, j, k);
}
if (j == T[0])
{
printf("匹配完成!i = %d, j = %d, k = %d\n", i, j, k);
return i;
}
else
{
printf("匹配失败!i = %d, j = %d, k = %d\n", i, j, k);
++i;
}
}
}
return 0;
}
int main(void)
{
Sstring S;
Sst
模式匹配之首位匹配
最新推荐文章于 2021-05-11 15:12:09 发布
本文深入探讨模式匹配中的首位匹配技术,揭示其在搜索算法和文本处理中的关键作用。通过实例解析,阐述首位匹配如何提高效率并减少不必要的比较,是理解高效字符串查找不可或缺的知识。

最低0.47元/天 解锁文章
5296

被折叠的 条评论
为什么被折叠?



