#include #include #include #define MAXCHAR 256 int BMH(char *T, char *P) { int i, j, k; int n = strlen(T); int m = strlen(P); int d[MAXCHAR]; //pré-processamento for (j=0; j 0) { k--; j--; } if (j == 0) return k+1; i += d[T[i - 1]]; } return -1; } int main() { char texto[] = "aabcacbacbacac"; char padrao[] = "cacbac"; int ocorr; ocorr = BMH(texto, padrao); printf("Casamento na posição: %d \n", ocorr); return 0; }