[ 簡単な説明 ]
各ルーチンのプロトタイプ宣言です。 kmp( ) で使用する _next[ ] を外部変数として宣言しています。(extern int *_next;) kmp( ) を使用する場合には、ソース中でグローバル変数として "int *_next;" を定義して下さい。 また、rks( ) で使用するハッシュ値生成のため、LARGE_PRIME と NUMBER_OF_CHAR をマクロ定数として定義しています。LARGE_PRIME は、long 型の範囲内で変更することができます。(但し、素数) NUMBER_OF_CHAR は変更しないで下さい。 |
/* match.h */ #ifndef _MATCH #define _MATCH #include <string.h> #define LARGE_PRIME 554383L #define NUMBER_OF_CHAR 256 typedef unsigned char uchar; extern int *_next; /* 文字列照合ルーチン */ void matchall(int (*func)(uchar *text, uchar *pattern), uchar *text, uchar *pattern, int *find, int nn); int bm1(uchar *text, uchar *pattern); int bm(uchar *text, uchar *pattern); int position1(uchar *text, uchar *pattern); int position2(uchar *text, uchar *pattern); int rks(uchar *text, uchar *pattern); int kmp(uchar *text, uchar *pattern); void pre_kmp(uchar *pattern); /* 探索ルーチン */ int bsrch_i(int srch, int a[], int n); int bsrch_d(double srch, double a[], int n); int bsrch_c(uchar *srch, uchar *a[], int n); #endif |