#include #include using namespace std; string Reflect(string phrase); char ReflectLetter(char letter); char ReflectLowerLetter(char letter); int main() { string phrase; string code; getline(cin, phrase); while (cin) { code = Reflect(phrase); cout << phrase << " becomes " << code << endl; getline(cin, phrase); } return 0; } char ReflectLowerLetter(char letter) { int position; char returnValue; position = letter - 'a'; if (position < 13) { returnValue = char(size_t('z') - position); } else { position = letter - 'm' ; returnValue = char(size_t('n') - position); } return returnValue; } char ReflectLetter(char letter){ bool upperCase = false; char returnValue = letter; if (isalpha(letter)) { // make it lower case, but remember this. if (isupper(letter)) { upperCase = true; letter = char(tolower(letter)); } returnValue = ReflectLowerLetter(letter); // return to upper case if needed. if (upperCase) { returnValue = char(toupper(returnValue)); } } return returnValue; } string Reflect(string phrase) { size_t i; string reflection; for(i=0; i < phrase.size(); i++) { reflection += ReflectLetter(phrase[i]); } return reflection; }