Commit 3c4efbdb by raliis

Upload New File

parent 4c8b0970
Showing with 161 additions and 0 deletions
/**
* File: krypto2.c
* Author: Rainer Liis
* Created: 29.01.2018
* Last edit: 31.01.2018
*
* Descrption: Encryption and decryption of text using caesar cipher.
* Input from text file and output to a text file.
* Encryption counts up, decryption counts down.
*/
#include <stdio.h>
void encrypt ();
void decrypt ();
int main (void)
{
char valik;
printf ("Do you wish to encrypt or decrypt?\n");
// user enters choice
do
{
printf ("Please enter a valid option(e/d):");
scanf ("%c", &valik);
}
while (valik != 'e' && valik != 'd');
//depending on the choice, a function is started
if (valik == 'e')
{
encrypt ();
}
else if (valik == 'd')
{
decrypt ();
}
else
{
printf ("option does not exist"); // if input is not one of
} // the choices
return 0;
}
void encrypt ()
{
char ni[80] = "sisend.txt", no[80] = "tul.txt";
char c;
int key;
int caesar;
FILE *fi, *fo;
fi = fopen (ni, "r");
fo = fopen (no, "w");
printf ("Enter the encryption key to encrypt: ");
scanf ("%d", &key);
key = key % 26; // in case the key is too large
do
{
c = fgetc(fi);
if (feof(fi)) // loop breaks when fgetc reaches end of file
{
break;
}
if (c >= 65 && c <= 90) // if char is uppercase
{
if ((c + key) > 90)
{
caesar = c - (26 - key);
}
else
{
caesar = (int)c + key;
}
}
else if (c >= 97 && c <= 122) // if char is lowercase
{
if ((c + key) > 122)
{
caesar = c - (26 - key);
}
else
{
caesar = (int)c + key;
}
}
printf ("%c", caesar);
fprintf (fo, "%c", caesar);
}
while (1);
printf (" \n");
}
void decrypt ()
{
char ni[80] = "sisend.txt", no[80] = "tul.txt";
char c;
int key;
int caesar;
FILE *fi, *fo;
fi = fopen (ni, "r");
fo = fopen (no, "w");
printf("Enter the encryption key to decrypt: ");
scanf ("%d", &key);
key = key % 26; // in case the key is too large
do
{
c = fgetc(fi);
if (feof(fi)) // loop breaks when fgetc reaches end of file
{
break;
}
if (c >= 65 && c <= 90) // if char is uppercase
{
if ((c - key) < 65)
{
caesar = c + (26 - key);
}
else
{
caesar = (int)c - key;
}
}
else if (c >= 97 && c <= 122) // if char is lowercase
{
if ((c - key) < 97)
{
caesar = c + (26 - key);
}
else
{
caesar = (int)c - key;
}
}
printf ("%c", caesar);
fprintf (fo, "%c", caesar);
}
while (1);
printf (" \n");
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment