#include <stdio.h>
int isalphabet(char c) {
if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z'))
return 1;
else
return 0;
}
char caesar(char c, int n) {
if (!isalphabet(c))
return c;
int base = (c >= 'A' && c <= 'Z') ? 'A' : 'a';
int pos = c - base;
pos = (pos + n) % 26;
if (pos < 0)
pos += 26;
return base + pos;
}
int main() {
char input[256];
int n;
for (int i = 0; input[i] != '\0'; i++) {
input[i] = caesar(input[i], n);
}
printf("Encrypted: %s\n", input
);
for (int i = 0; input[i] != '\0'; i++) {
input[i] = caesar(input[i], -n);
}
printf("Decrypted: %s\n", input
);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgaXNhbHBoYWJldChjaGFyIGMpIHsKICAgIGlmICgoYyA+PSAnQScgJiYgYyA8PSAnWicpIHx8IChjID49ICdhJyAmJiBjIDw9ICd6JykpCiAgICAgICAgcmV0dXJuIDE7CiAgICBlbHNlCiAgICAgICAgcmV0dXJuIDA7Cn0KCmNoYXIgY2Flc2FyKGNoYXIgYywgaW50IG4pIHsKICAgIGlmICghaXNhbHBoYWJldChjKSkKICAgICAgICByZXR1cm4gYzsKCiAgICBpbnQgYmFzZSA9IChjID49ICdBJyAmJiBjIDw9ICdaJykgPyAnQScgOiAnYSc7CiAgICBpbnQgcG9zID0gYyAtIGJhc2U7CiAgICBwb3MgPSAocG9zICsgbikgJSAyNjsKICAgIGlmIChwb3MgPCAwKQogICAgICAgIHBvcyArPSAyNjsKICAgIHJldHVybiBiYXNlICsgcG9zOwp9CgppbnQgbWFpbigpIHsKICAgIGNoYXIgaW5wdXRbMjU2XTsKICAgIGludCBuOwogICAgc2NhbmYoIiVkIiwgJm4pOwogICAgc2NhbmYoIiAlW15cbl0iLCBpbnB1dCk7CgogICAgZm9yIChpbnQgaSA9IDA7IGlucHV0W2ldICE9ICdcMCc7IGkrKykgewogICAgICAgIGlucHV0W2ldID0gY2Flc2FyKGlucHV0W2ldLCBuKTsKICAgIH0KICAgIHByaW50ZigiRW5jcnlwdGVkOiAlc1xuIiwgaW5wdXQpOwoKICAgIGZvciAoaW50IGkgPSAwOyBpbnB1dFtpXSAhPSAnXDAnOyBpKyspIHsKICAgICAgICBpbnB1dFtpXSA9IGNhZXNhcihpbnB1dFtpXSwgLW4pOwogICAgfQogICAgcHJpbnRmKCJEZWNyeXB0ZWQ6ICVzXG4iLCBpbnB1dCk7CgogICAgcmV0dXJuIDA7Cn0=