pytanie do algorytmu BM

0

po implementacji algorytmu wyrzuca mi błąd że zmienna M jest niezidentyfikowana, widać w kodzie, że żadna wartość nie jest przydzielona do tej zmiennej. Kod sprawdzałem z tym który jest podany w dziale algorytmy tej strony, oraz weryfikowałem jego poprawnosć z innym źródłem. I następne pytanie, w jaki sposób będę mógł wyodrębnić wartosć (tzn skopiować np do innej tablicy char) znalezioną w tekście wg wzorca (ponieważ musze później zamienić wielkość liter z małych na duże w tym znalezionym fragmencie)
a to algorytm BM:

const K = 53; // litery(26+26) i spacja (1) 
int shift[K]; 

int indeks(char c) 
{ switch(c) { 
    case 32: return 0; // spacja 
    default: if(islower(c)) return c-'a'+1; 
                else return c-'A'+27; 
    } 
} 

void InitShift(char *w) 
{ 
  int i; 
  for(i=0; i < K; i++) shift[i]=M; 
      for(i=0; i < M; i++) shift[indeks(w[i])]=M-i-1; 
} 

int BM(char *t, char *w) 
{ 
  int i,j,N=strlen(t),x; 
  for(i=M-1,j=M-1; j > 0; i--,j--) 
  while( t[i]!=w[j] ) 
  { x=shift[indeks(t[i])]; 
      if(M-j > x) i+=M-j; else i+=x; 
        if(i >= N) return -1; 
        j=M-1; 
  } 
  return i; 
}
0

moze mi się wydaje bo troche nieprzytomny jestem ale czy zmienna M jest zdeklarowana gdzieś?? bo nie widze chyba ... (np. int M;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1