文字列照合・探索プログラムヘッダー



[ 簡単な説明 ]

各ルーチンのプロトタイプ宣言です。

kmp( ) で使用する _next[ ] を外部変数として宣言しています。(extern int *_next;)
kmp( ) を使用する場合には、ソース中でグローバル変数として "int *_next;" を定義して下さい。

また、rks( ) で使用するハッシュ値生成のため、LARGE_PRIME と NUMBER_OF_CHAR をマクロ定数として定義しています。LARGE_PRIME は、long 型の範囲内で変更することができます。(但し、素数)
NUMBER_OF_CHAR は変更しないで下さい。


プログラム・ソース("match.h")           top (トップに戻る)
/*		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