#include #include #include #define KEY "APSODIFUMEMRNTXHDFGPAOSAHNGXNBLYIUERQWEMNXCBHJKNBASFDKREWAOQ" /* come il codice di Cesare, ma ogni lettera del messaggio va portata in avanti seguendo la chiave: la prima lettera di 'A'-'A'=0 posizioni, la seconda lettera di 'P'-'A'=15 posizioni, la terza di 'S'-'A'=18 posizioni e cosŤ via. Vedi libro a pag. 225 */ #define RETURN 13 #define LMAX 60 void main(void) { int CODICE, i=0, tasto; char messaggio_chiaro[LMAX]; char messaggio_codificato[LMAX]; char chiave[LMAX]=KEY; printf("\nCodifica di sostituzione a trasl. variabile"); printf("\nImmetti il messaggio (max 60 char) "); tasto=toupper(getche()); while (tasto!=RETURN) { messaggio_chiaro[i]=tasto; if isalpha(tasto) messaggio_codificato[i++]='A'+((chiave[i]-'A')+(tasto-'A'))%26; else messaggio_codificato[i++]=tasto; tasto=toupper(getche()); } messaggio_chiaro[i]=0; messaggio_codificato[i]=0; printf("\nin chiaro: %s",messaggio_chiaro); printf("\nin codice: %s",messaggio_codificato); getch(); }