#include "library.h" const string jumble = "ldzbwrjnhuagpcxfksemqvtyio"; const string alpha = "abcdefghijklmnopqrstuvwxyz"; int posof(const char c, const string s, const int i) { if (i > 25) return -1; if (s[i] == c) return i; return posof(c, s, i+1); } int posof(const char c, const string s) { return posof(c, s, 0); } char encrypt(const char c) { const int p = posof(c, jumble); if (p == -1) return '?'; return alpha[p]; } char decrypt(const char c) { const int p = posof(c, alpha); if (p == -1) return '?'; return jumble[p]; } string doencrypt(const string s, const int pos) { if (pos >= s.length()) return ""; const char first = encrypt(s[pos]); const string rest = doencrypt(s, pos+1); const string result = ""; return result + first + rest; } string dodecrypt(const string s, const int pos) { if (pos >= s.length()) return ""; const char first = decrypt(s[pos]); const string rest = dodecrypt(s, pos+1); const string result = ""; return result + first + rest; } string encrypt(const string s) { return doencrypt(s, 0); } string decrypt(const string s) { return dodecrypt(s, 0); } void main() { const string query = read_string(); const string result = encrypt(query); cout << query << " encrypted is " << result << "\n"; const string orig = decrypt(result); cout << result << " decrypted is " << orig << "\n"; main(); }