王道数据结构 (6) 简单的模式匹配算法

2021-04-09 17:28

阅读:531

标签:宏定义   dex   定义   图片   efi   return   技术   png   简单   

代码:

#include   
#include "stdlib.h"
 
//宏定义    
#define TRUE   1    
#define FALSE   0    
#define OK    1    
#define ERROR   0  
 
#define  MAXSTRLEN 100
 
typedef char    SString[MAXSTRLEN + 1];
/************************************************************************/
/* 
 返回子串T在主串S中第pos位置之后的位置,若不存在,返回0
*/
/************************************************************************/
int BFindex(SString S, SString T, int pos)
{
    if (pos 1 ||  pos > S[0] ) exit(ERROR);
    int i = pos, j =1;
    while (i0] && j 0])
    {
        if (S[i] == T[j])
        {
            ++i; ++j;
        } else {
            i = i- j+ 2;
            j = 1;
        }
    }
    if(j > T[0]) return i - T[0];
    return ERROR;
}
 
 
 
void main(){
    SString S = {13,a,b,a,b,c,a,b,c,a,c,b,a,b};
    SString T = {5,a,b,c,a,c};
    int pos;
    pos = BFindex( S,  T, 1);
    printf("%d", pos);
}

输出:  6 

技术图片

 

 

 

 

技术图片

 

王道数据结构 (6) 简单的模式匹配算法

标签:宏定义   dex   定义   图片   efi   return   技术   png   简单   

原文地址:https://www.cnblogs.com/guangzhou11/p/13373206.html


评论


亲,登录后才可以留言!