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