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.
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