A dire il vero non si è capito molto di quello che vuoi fare con quella funzione, ma soprattutto non ho capito perchè implementarla in quel modo (a cosa serve "a"?) e perchè usare una funzione ricorsiva?


Questa è la tua modificata. Fa le stesse cose?

codice:
int parola_chiave( char *key, char *text )
{
    if( (*key == '\0') && (*text == '\0') )
  	return 1;

    if( *key != *text )
	return 0;

    else
    {
	++key;
	++text;

        return parola_chiave( key, text );
    }
}