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); } }

Rispondi quotando