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