#include <stdio.h>
#include <string.h>
// 串普通模式匹配算法的实现函数, 其中B是伪主串, A是伪子串
int mate(char * B, char * A) {
int i = 0, j = 0;
while (i < strlen(B) && j < strlen(A)) {
if (B[i] == A[j]) {
i ++;
j ++;
}
else {
i = i - j + 1;
j = 0;
}
}
// 跳出循环有两种可能,i=strlen(B)说明已经遍历完主串,匹配失败;
// j=strlen(A),说明子串遍历完毕, 在主串中成功匹配
if (j == strlen(A)) {
return i - strlen(A) + 1;
}
// 运行到此,为i==strlen(B)的情况
return 0;
}
int main() {
int number = mate("ababcabcacbab", "abcab");
printf("%d", number);
return 0;
}
C语言数据结构学习——BF算法
最新推荐文章于 2022-04-06 08:33:40 发布