Blendon [ Generaďż˝ ]
Problem z kodem w c++
Mam pewnien problem. Omawialem dzisiaj Algorytm Knutha-Morrisa-Pratta - wyszukiwanie wzorca. Znalezlem w necie kod zrodlowy tego algorytmu w C++ i na poczatku wszystko jest ok, program sie kompiluje, ale po wprowadzeniu danych wyskakuje blad w windowsie i program sie zamyka. Generalnie rzecz bioroac nie wiem co jest zle. Oto ten kod:
#include <iostrem.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
#ifdef __cplusplus
int max (int value1, int value2);
int max(int value1, int value2)
return ( (value1 > value2) ? value1 : value2);
#endif
int main(void)
char *wzorzec;
char *tekst;
int m,n,i,j,t;
int P[100];//maksymalna dlugosc wzorca to 100 symboli
printf("Podaj tekst\n");
scanf("%s", tekst);
printf("Podaj wzorzec\n");
scanf("%s", wzorzec);
n=strlen(tekst);
m=strlen(wzorzec);
printf("Indeksy poczatku wzorca w tekscie\n");
//obliczenie tablicy P
P[0]=0; P[1]=0; t=0;
for (j=2; j<=m; j++)
while ((t>0)&&(wzorzec[t]!=wzorzec[j-1])) t=P[t];
if (wzorzec[t]==wzorzec[j-1]) t++;
P[j]=t;
//algorytm KMP
i=1; j=0;
while (i<=n-m+1)
j=P[j];
while((j<m)&&(wzorzec[j]==tekst[i+j-1])) j++;
if (j==m) printf("%d\n",i);
i=i+max(1,j-P[j]);
getch();
return 0;
PS. Uzywam kompilatora dev c++ 4.9.8.0
mORfeOoSH [ NULL ]
char *wzorzec = new char[100];
char *tekst = new char[100];
sprobuj tak, moze zadziala
Blendon [ Generaďż˝ ]
mORfeOoSH -----> wielkie dzieki, nie wiem jak to zrobiles, ale dziala bez zarzutu!
mORfeOoSH [ NULL ]
duzo cwicze gdy jestem sam :)
Vein [ Sannin ]
morfeoosh - tak wiem ze duzo cwiczysz z gumowym kurczakeim jak jestes sam
a co do tego co zorbil morfeoosh to poprostu ustalil max. ilosc znakow dla tej zmiennej.... poprostu nie byl ot dokonczony algorytm, trzeba bylo ustalic wielkosc zmiennych (tak tak karpiu, ucze sie ucze !!!)