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.
Tutto questo codice è inserito in un altro ciclo while, quello classico usato per la lettura di un filecodice: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++; }
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

Rispondi quotando