Originariamente inviato da Neptune
Salve a tutti ho la seguente funzione in cui i cicli for non funzionano a dovere:
codice:
int controllo_nt_dupplicati(char nt1[50], char nt2[50])
{
int i,j;
int ritorno = 1;
for(i = 0;(i < 50) && (nt1[i] != '/0'); i++)
{
for(j = 0; (j< 50) && (nt2[j] != '/0'); j++)
{
//debug
printf("[%d][%d]",i,j);
//debug
if((nt1[i] == nt2[j]) && (nt1[i] != 'S'))
{
ritorno = 0;
}
}
}
return ritorno;
}
nt1 ed nt2 sono due stringhe di caratteri che riempio in un'altra funzione ed a cui aggiungo a mano alla fine il carattere tappo, con una semplice assegnazione.
Ora con quella printf di debug mi sono accorto che non si ferma al carattere tappo ma cicla in tutte e 50 le posizioni (dalla 0 alla 49). In cosa sbaglio ? però non sempre, ogni tanto si ferma, eppure il carattere tappo lo metto ad ogni stringa.
praticamente il mio scopo è confrontare ogni elemento del vettore nt1, con gli elementi del vettore nt2 per cercare di capire se non ci sono caratteri dupplicati, magari anche in posizioni diverse. Ovviamente però le stringhe possono essere massimo 50 caratteri, ma potrebbero essere più corte e quindi dovrebbe fermarsi al carattere tappo.
Vi ringrazio in anticipo per la disponibilità,
Neptune.