edutecnica

Esercizio 4       

Implementare un algoritmo di crittografia basato su una classe C che codifica una stringa di caratteri in ingresso in una stringa crittata illegibile.
Il sistema deve funzionare attraverso una chiave numerica che prende tutte le occorrenze di ogni lettera della stringa e le sostituisce con la lettera che sta in k (chiave numerica) posizioni più a destra nell'ordine alfabetico.

codice di cesare

Se k è negativa lo spostamento deve avvenire verso sinistra.


#include<iostream>
#include<string.h>

using namespace std;
class C{
     int k;
public :
     void setk(int ch);
     void cod (char *s ) ;
} ; //______implementazione dei metodi
void C::setk(int ch){
      k=ch;
}
// ASCII(a)=97 ASCII(z)=122
void C::cod(char *s){
int pos,lg=strlen(s);
//imposto tutti i caratteri minuscoli
for(int i=0;i < lg;i++)s[i]=tolower(s[i]);
for(int i=0;i < lg;i++){
     pos=(int)s[i]+k;
     if(pos > 122){pos=pos-26;}
     else if(pos < 97){pos=26+pos;}
     s[i]=(char)pos;
}//fine for
}//fine cod
main(){
     char str[100];
     int key;
     C p;
     cout << "parola da cifrare:";cin >> str ;
     cout << "chiave: ";cin >> key;
     p.setk(key);
     p.cod(str) ;
     cout << "parola crittata:" << str << endl;
}//__________fine main