Skip to content
  • P
    Projects
  • G
    Groups
  • S
    Snippets
  • Help

raliis / IAX0584

  • This project
    • Loading...
  • Sign in
Go to a project
  • Project
  • Repository
  • Issues 0
  • Merge Requests 0
  • Pipelines
  • Wiki
  • Snippets
  • Members
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Files
  • Commits
  • Branches
  • Tags
  • Contributors
  • Graph
  • Compare
  • Charts
Commit 3c4efbdb authored 7 years ago by raliis's avatar raliis
Browse files
Options
  • Browse Files
  • Download
  • Email Patches
  • Plain Diff

Upload New File

parent 4c8b0970 master
Show whitespace changes
Inline Side-by-side
Showing with 161 additions and 0 deletions
  • week1/krypto.c
week1/krypto.c 0 → 100644
View file @ 3c4efbdb
/**
* 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");
}
This diff is collapsed. Click to expand it.
  • Write
  • Preview
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