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