Ciao a tutti, ho un problema con questo codice, scritto in C, che non deve fare altro che incrementare una variabile quando il carattere str1[i] è uguale al carattere str2[i].
Compilando con gcc(-Wall) mi da solo il warning sulla gets, invece una volta lanciato e inserito "risp"(gets (risp)) non mi da niente ne va avanti ne errore..con gdb ho controllato e sembra che il ciclo giri all'infinito..non riesco a capirne il motivo, una stringa non termina con '\0'?

Codice:

#include <stdio.h>

int main()
{
int a= 0; //Tiene il punteggio
char risp[100]; //Input utente
char str1[]="ponte";
char str2[]="castello";

int i, j, k; //Contatori

printf(">> ");
gets(risp);
printf("\n");

i = 0;
k = 0;
j = 0;

while(str1[i] != '\0' || risp[j] != '\0')
{
if(str1[i] == risp[j]) //Se il carattere è presente in risp
{
k++;
}
}

//Punteggio

printf("K = %d\n", k);

if(k == 0)
{
a=a-1;
//Da qui salta al prossimo giocatore
}
else
{
a=a+1;
}

printf("Punteggio >>> %d\n", a);

i=0;g
k=0;
j=0;

while(str2[i] != '\0' || risp[j] != '\0')
{
if(str2[i] == risp[j]) //Se il carattere è presente in risp
{
k++;
}
}

//Punteggio

printf("K = %d\n", k);

if(k == 0)
{
a=a-1;
//Da qui salta al prossimo giocatore
}
else
{
a=a+1;
}


printf("Punteggio >>> %d\n", a);

return 0;
}