Buongiorno a tutti,
vi posto un codice che ho scritto, fondamentalmente è un ciclo while con un'interruzione. Il codice dovrebbe andare ma a mio parere (da principiante) direi che è tutt'altro che ottimizzato, non riesco a capire come..
In sostanza, letto un carattere lo si deve confrontare con i caratteri presenti in una tabella.
La tabella è fatta così: tab[26][2], nella prima colonna ci sono i caratteri da fornire in output mentre nella seconda colonna quelli da confrontare con il carattere in input.
codice:
i=0;
j=0;
c=getc(f); //leggo carattere da file
if (tab[i][2]==c)
fprintf(f2,"%c", tab[1][1]; //stampa il valore nel file
else
while (tab[i][2]!=c)
{
if(tab[i+1][2]==c) //se hai trovato il valore
{
fprintf(f2,"%c", tab[i+1][1]); //stampa il valore nel file
break; //esci da while
}
i++;
}
Tutto questo codice è inserito in un altro ciclo while, quello classico usato per la lettura di un file
Si poteva fare anche con un semplice ciclo for (da 0 a 26, viste le 26 righe della tabella) ma è uno spreco di risorse, visto che il match tra input e output è univoco...
Spero ci sia un modo migliore per fare il tutto
Grazie