Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #include <ctype.h>
- #define DIM 1000
- char encode(char letter, int key);
- char decode(char letter, int key);
- int main()
- {
- char phrase[DIM];
- char code_word[DIM];
- int keys[DIM];
- printf("Please enter your code phrase: ");
- gets(code_word);
- for (int i = 0; i < strlen(code_word); i++) {
- keys[i] = toupper(code_word[i]) - 'A' + 1;
- }
- const int MOD = strlen(code_word);
- printf("Please enter phrase you want to cipher: ");
- gets(phrase);
- char coded[DIM];
- for (int i = 0; i < strlen(phrase); i++) {
- coded[i] = encode(phrase[i], keys[i%MOD]);
- }
- char decoded[DIM];
- for (int i = 0; i < strlen(coded); i++) {
- decoded[i] = decode(coded[i], keys[i%MOD]);
- }
- printf("Coded phrase is: %s\n", coded);
- printf("Decoded phrase is: %s\n", decoded);
- return 0;
- }
- char encode(char letter, int key)
- {
- if (!isalpha(letter)) return letter;
- char temp = letter;
- temp = toupper(temp);
- temp += key;
- if (temp > 'Z') temp = 'A' + temp - 'Z' - 1;
- return (isupper(letter) ? temp : tolower(temp));
- }
- char decode(char letter, int key)
- {
- if (!isalpha(letter)) return letter;
- char temp = letter;
- temp = toupper(temp);
- temp -= key;
- if (temp < 'A') temp = 'Z' - ('A' - temp) + 1;
- return (isupper(letter) ? temp : tolower(temp));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement