aboutsummaryrefslogtreecommitdiff
path: root/challenge-070/ulrich-rieke/cpp/ch-1.cpp
diff options
context:
space:
mode:
authorMyoungjin JEON <jeongoon@gmail.com>2020-07-27 16:10:03 +1000
committerMyoungjin JEON <jeongoon@gmail.com>2020-07-27 16:10:03 +1000
commit9f5aee78a5569f7e0c8f742dd907663bd1e04642 (patch)
tree8f864d8438c06983ab9438e1e9839628cfe18520 /challenge-070/ulrich-rieke/cpp/ch-1.cpp
parentfde6b9fbc1e5fa1378acd6b1b5c6aed854f4f156 (diff)
parent450eab302dee5452d66be1f388cea4fafb0b5a31 (diff)
downloadperlweeklychallenge-club-9f5aee78a5569f7e0c8f742dd907663bd1e04642.tar.gz
perlweeklychallenge-club-9f5aee78a5569f7e0c8f742dd907663bd1e04642.tar.bz2
perlweeklychallenge-club-9f5aee78a5569f7e0c8f742dd907663bd1e04642.zip
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'challenge-070/ulrich-rieke/cpp/ch-1.cpp')
-rw-r--r--challenge-070/ulrich-rieke/cpp/ch-1.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/challenge-070/ulrich-rieke/cpp/ch-1.cpp b/challenge-070/ulrich-rieke/cpp/ch-1.cpp
new file mode 100644
index 0000000000..721956fde7
--- /dev/null
+++ b/challenge-070/ulrich-rieke/cpp/ch-1.cpp
@@ -0,0 +1,29 @@
+#include <string>
+#include <iostream>
+#include <cstdlib>
+
+void swapLetters( std::string & word, int firstPos, int secondPos ) {
+ std::string temp( word.substr( secondPos , 1 ) ) ;
+ int len = word.length( ) ;
+ if ( secondPos < len - 1 )
+ word = word.substr( 0 , secondPos ) + word.substr( firstPos, 1 )
+ + word.substr( secondPos + 1 ) ;
+ else
+ word = word.substr( 0 , secondPos ) + word.substr( firstPos, 1 ) ;
+ if ( firstPos > 0 )
+ word = word.substr( 0 , firstPos ) + temp + word.substr( firstPos
+ + 1 ) ;
+ else
+ word = temp + word.substr( firstPos + 1 ) ;
+}
+
+int main( int argc, char * argv[] ) {
+ std::string word( argv[ 1 ] ) ;
+ int c = std::atoi( argv[ 2 ] ) ;
+ int o = std::atoi( argv[ 3 ] ) ;
+ int n = word.length( ) ;
+ for ( int i = 1 ; i < c + 1 ; i++ )
+ swapLetters( word , i % n , ( i + o ) % n ) ;
+ std::cout << word << std::endl ;
+ return 0 ;
+}