Un chiffre est un type simple de code qui remplace chaque lettre du message secret avec un symbole ou un caractère spécifique. Un des plus connus est le chiffre de César , qui ne fait qu'avancer l'alphabet un nombre donné de lettres , de sorte que A est B et B est C , ou A est M et B est N , en fonction de la distance que vous passez elle . En manipulant les valeurs ASCII , vous pouvez facilement écrire un programme en C qui peut effectuer des opérations de ce genre pour vous à la volée , le cryptage instantanément n'importe quel message que vous tapez . Instructions
1
inclure le fichier d'en-tête d'entrée /sortie standard et de déclarer une fonction de chiffrement qui prend un entier . Cet entier représentera le nombre de lettres pour déplacer le chiffre. Dans un chiffrement avec un décalage de 1, A serait B; avec un décalage de 2, A serait C et ainsi de suite . Ce code préliminaire devrait ressembler à ceci :
# include
crypter void (int letter_shift ) ;
2
Créer le encrypt ( ) fonction. Cela devrait commencer par déclarer une variable char, qui se tiendra pour la lettre actuellement codé ou décodé. Afficher un message à l'écran vous demander d'entrer , puis stocker que l'entrée dans la variable char . Il devrait ressembler à ceci :
crypter void (int letter_shift )
{
char ch ;
printf (" Entrez votre texte à crypter : ");
ch = getchar ();
3
Écrire une boucle while qui examinent le caractère actuel et effectuer le chiffrement . La boucle doit vérifier si le personnage tombe dans la gamme de l'alphabet ASCII, seulement cryptant si c'est le cas, et déplacer les lettres vers la fin de l'alphabet revenir au début . De cette façon, un algorithme de chiffrement avec un décalage de 1 rendra Z A, non pas comme [ . La boucle sera imprimer chaque lettre à l'écran comme il le crypte , ne s'arrêtant que quand il rencontre le caractère de nouvelle ligne . Cette seconde moitié du encrypt ( ) fonction devrait ressembler à ce qui suit:
while ( ch = '\\ n' !)
{
If ( isalpha (ch) )
{
if ( isupper ( ch) && isupper (ch + letter_shift )