Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.29 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <ctype.h>
  4. #define DIM 1000
  5.  
  6. char encode(char letter, int key);
  7. char decode(char letter, int key);
  8.  
  9. int main()
  10. {
  11.     char phrase[DIM];
  12.     char code_word[DIM];
  13.     int keys[DIM];
  14.  
  15.     printf("Please enter your code phrase: ");
  16.     gets(code_word);
  17.     for (int i = 0; i < strlen(code_word); i++) {
  18.         keys[i] = toupper(code_word[i]) - 'A' + 1;
  19.     }
  20.     const int MOD = strlen(code_word);
  21.  
  22.     printf("Please enter phrase you want to cipher: ");
  23.     gets(phrase);
  24.  
  25.     char coded[DIM];
  26.     for (int i = 0; i < strlen(phrase); i++) {
  27.         coded[i] = encode(phrase[i], keys[i%MOD]);
  28.     }
  29.  
  30.     char decoded[DIM];
  31.     for (int i = 0; i < strlen(coded); i++) {
  32.         decoded[i] = decode(coded[i], keys[i%MOD]);
  33.     }
  34.  
  35.     printf("Coded phrase is: %s\n", coded);
  36.     printf("Decoded phrase is: %s\n", decoded);
  37.     return 0;
  38. }
  39.  
  40. char encode(char letter, int key)
  41. {
  42.     if (!isalpha(letter)) return letter;
  43.     char temp = letter;
  44.     temp = toupper(temp);
  45.     temp += key;
  46.     if (temp > 'Z') temp = 'A' + temp - 'Z' - 1;
  47.     return (isupper(letter) ? temp : tolower(temp));
  48. }
  49. char decode(char letter, int key)
  50. {
  51.     if (!isalpha(letter)) return letter;
  52.     char temp = letter;
  53.     temp = toupper(temp);
  54.     temp -= key;
  55.     if (temp < 'A') temp = 'Z' - ('A' - temp) + 1;
  56.     return (isupper(letter) ? temp : tolower(temp));
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement