aboutsummaryrefslogtreecommitdiff
path: root/challenge-097/paulo-custodio/cpp/ch-1.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-097/paulo-custodio/cpp/ch-1.cpp')
-rw-r--r--challenge-097/paulo-custodio/cpp/ch-1.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/challenge-097/paulo-custodio/cpp/ch-1.cpp b/challenge-097/paulo-custodio/cpp/ch-1.cpp
new file mode 100644
index 0000000000..cddd5df19f
--- /dev/null
+++ b/challenge-097/paulo-custodio/cpp/ch-1.cpp
@@ -0,0 +1,32 @@
+/*
+Challenge 097
+
+TASK #1
+
+*/
+
+#include <iostream>
+#include <string>
+#include <cctype>
+
+// replace in-place by ciphered text
+void caeser(int n, std::string& str) {
+ for (auto& c : str) {
+ if (isalpha(c))
+ c = ((toupper(c)-'A'+26-n)%26)+'A';
+ }
+}
+
+int main(int argc, char* argv[]) {
+ std::string str;
+ if (argc > 2) {
+ int n = atoi(argv[1]);
+ for (int i = 2; i < argc; i++) {
+ str += argv[i];
+ str += " ";
+ }
+ str.pop_back();
+ caeser(n, str);
+ std::cout << str << std::endl;
+ }
+}