From 042acb10595161ac36b47768f7c1e58c553e6b33 Mon Sep 17 00:00:00 2001 From: Michael Abed Date: Sun, 12 Feb 2012 15:42:43 -0500 Subject: solve problem 4 --- Q4.cpp | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) (limited to 'Q4.cpp') diff --git a/Q4.cpp b/Q4.cpp index e69de29..0a14cad 100644 --- a/Q4.cpp +++ b/Q4.cpp @@ -0,0 +1,49 @@ +/* + * Michael Abed + * + * Lab 1 Problem 4 + * + * Convert a letter based on an offset. + */ + +#include + +using namespace std; + +int main() +{ + + char input; + int offset; + int caseswap = 'a' - 'A'; + + cout << "Enter character: "; + cin >> input; // any character will do + + do { // validate input + cout << "Offset (enter 0 to convert case): "; + cin >> offset; + if (offset < 0) + cout << "Offset must be positive" << endl; + if (offset >= 128) + cout << "Offset must be less than 128" << endl; + } while (offset < 0 || offset >= 128); + + char knew; + // calculate new character + if (offset == 0 && input >= 'A' && input <= 'Z') + knew = input + caseswap; + else if (offset == 0 && input >= 'a' && input <= 'z') + knew = input - caseswap; + else if (offset == 0) + knew = input; + else + knew = input + offset; + + if (input + offset > '~' ) // larger is non printing + cout << "Result outside of ASCII range" << endl; + else + cout << "New character: " << knew << endl; + + return 0; +} -- cgit v1.2.3