简单模式匹配算法

来源:互联网 发布:智能运动手环 知乎 编辑:程序博客网 时间:2024/05/21 11:26
算法设计思想:
•将主串S的第pos个字符和模式T的第1个字符比较,
–若相等,继续逐个比较后续字符;
–若不等,从主串S的下一字符(pos+1)起,重新与T第一个字符比较。 
•直到主串S的一个连续子串字符序列与模式T相等。返回值为S中与T匹配的子序列第一个字符的序号,即匹配成功。
•否则,匹配失败,返回值 0 .

int Find(char*target, char* pat) {

inti=0,j=0;

intlengthP =strlen(pat),  lengthT =strlen(target);

while(i<=lengthT-lengthP)

{           j=0;

  while(target[i]==pat[j]&&j<lengthP){

                i++;j++;

            }

             if(j==lengthP)

 return i-j; //pat扫描完,匹配成功

            else

i=i-j+1;//不匹配,做下一趟比较

}

 return –1; 

 }


原创粉丝点击