📄 3-11.c
字号:
#include "stdio.h"
#include <string.h>
#include <stdio.h>
#include <String.h>
#define max_sring_size 100
#define max_Pattern_size 100
int Failure[max_Pattern_size];
void fail(char *Pat )
{
int i,j,n=strlen(Pat);
Failure [ 0 ] = -1;
for ( j = 1; j < n; j ++) {
i = Failure [ j -1 ];
while ((Pat [ j ] != Pat [ i +1 ])&& ( i >= 0))
i = Failure [ i ];
if ( Pat[j] == Pat [ i + 1] )
Failure[j]= i + 1;
else
Failure [j] = -1;
}
}
int match ( char *String, char *Pat)
{
int i = 0, j = 0;
int lens = strlen ( String );
int lenp = strlen ( Pat);
while ( i < lens && j <lenp ) {
if (String [i] == Pat[j] ){
i ++;
j ++;
}
else if ( j== 0 )
i ++;
else
j=Failure [j-1] + 1;
}
return (( j == lenp ) ? ( i - lenp ) : -1 );
}
void main ()
{
char s[]="Sit please.";
char t[]="please ";
int po=match(s,t);
printf("%d",po);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -