Funkcja porównuje dwie tablice. Jeżeli tekst zawarty w tej podanej jako drugi
argument znajduje się gdziekolwiek w tablicy podanej jako pierwszy argument, to funkcja ma zwracać 1. W innym wypadku zwraca 0. Problem jest taki. Jeżeli np. taki program:
Kod:
//tutaj ta funkcja
main()
{
char buf[] = { "oabcaslelekoef" } ;
char buf2[] = { "abc" } ;
cout << tablewordsearch(buf, buf2) ;
}
To zwraca 1.
W przypadku kiedy do drugiej tablicy wrzucimy "asl", to wtedy zwraca 0, mimo że taki tekst występuje w tablicy 1 Ktoś wie, co tu jest "be"?
Oto funkcja:
Kod:
int tablewordsearch(char buf1[], char buf2[]) {
long size1 = sizeof(buf1) / sizeof(char) ;
long size2 = sizeof(buf2) / sizeof(char) ;
for(int i = 0;i < (size1-1);i++) { // for1
for(int g=0;g<(size2-1);g++) { //for2
if(buf1[i+g] == buf2[g]) {
if(g == (size2-2)) {
return 1 ;
}
continue ;
}
else {
break ;
}
} // for2
} // for1
return 0 ;
}