Advertisement
rupek1995

C Caesar

Jan 27th, 2017
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.73 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <cs50.h>
  3. #include <string.h>
  4.  
  5. string encrypt(string text, int key);
  6.  
  7. int main(int argc, string argv[])
  8. {
  9.     // if not enough or more than 1 arguments - return an error
  10.     if (argc != 2)  
  11.     {
  12.         printf("Incorrect number of arguments!");
  13.         return 1;
  14.     }
  15.    
  16.     string plaintext, ciphertext;
  17.     int key = atoi(argv[1]);    // convert console key argument to int
  18.    
  19.     printf("plaintext: ");
  20.     plaintext = get_string();
  21.     ciphertext = encrypt(plaintext, key);
  22.     printf("ciphertext: %s\n", ciphertext);
  23.    
  24.     return 0;
  25. }
  26.  
  27. string encrypt(string plaintext, int key)
  28. {
  29.     int text_length = strlen(plaintext);
  30.     string ciphertext = plaintext; // first copy the plaintext, then encrypt it
  31.    
  32.     for (int i = 0, n = text_length; i < n; i++)
  33.     {
  34.         if (ciphertext[i] >= 'a' && ciphertext[i] <= 'z') // for lower-case characters
  35.         {
  36.             for (int j = 0; j < key; j++)   // crypt every character of ciphertext
  37.             {
  38.                 if (ciphertext[i] >= 'z')
  39.                 {
  40.                     ciphertext[i] = 'a';
  41.                 }
  42.                 else
  43.                 {
  44.                     ciphertext[i]++;
  45.                 }
  46.             }
  47.         }
  48.         else if (ciphertext[i] >= 'A' && ciphertext[i] <= 'Z')    // for upper-case characters
  49.         {
  50.             for (int j = 0; j < key; j++)   // crypt every character of ciphertext
  51.             {
  52.                 if (ciphertext[i] >= 'Z')
  53.                 {
  54.                     ciphertext[i] = 'A';
  55.                 }
  56.                 else
  57.                 {
  58.                     ciphertext[i]++;
  59.                 }
  60.             }
  61.         }
  62.     }
  63.    
  64.     return ciphertext;
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement