Salve a tutti,ho scritto una funzione che prende come parametri di ingresso due puntatori a due stringhe differenti (uno è la parola chiave da cercare,l' altro il testo) e un numero (solitamente 0,che mi serve per portare avanti l' algoritmo ricorsivo).
Apparte il fatto che mi da warning: "control reaches end of non-void function",ho notato che funziona male,cioè io voglio che mi ritorna 1 solo se tutta la parola chiave è contenuta,invece mi ritorna 1 anche quando un pezzo della parola chiave è contenuta.
Mi spiego meglio,ad esempio cerco la parola "ciaop" e se trova "ciao" mi ritorna 1 comunque
Ecco qua il codice:
codice:
int parola_chiave(char *p1,char *p2,int a)
{
if(*p2=='\0'&&*p1!='\0')
return 0;
else if(*p1=='\0')
return 1;
else
{
if(*p1==*p2)
{
p1++;
a++;
}
else
{
p1-=a;
a=0;
}
p2++;
parola_chiave(p1,p2,a);
}
}