diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-10-20 08:23:28 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-10-20 08:23:28 +0100 |
| commit | a660745f4efb1a8be426529a1f90d3a5a2010a83 (patch) | |
| tree | 9b7d0d7c125f351a4ef47b83def4cb982275a2dc /challenge-135/ulrich-rieke/cpp/ch-1.cpp | |
| parent | b680c7f41f9d1518d5ce373d7301c03e4dc6a574 (diff) | |
| download | perlweeklychallenge-club-a660745f4efb1a8be426529a1f90d3a5a2010a83.tar.gz perlweeklychallenge-club-a660745f4efb1a8be426529a1f90d3a5a2010a83.tar.bz2 perlweeklychallenge-club-a660745f4efb1a8be426529a1f90d3a5a2010a83.zip | |
- Added solutions by Ulrich Rieke.
Diffstat (limited to 'challenge-135/ulrich-rieke/cpp/ch-1.cpp')
| -rw-r--r-- | challenge-135/ulrich-rieke/cpp/ch-1.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/challenge-135/ulrich-rieke/cpp/ch-1.cpp b/challenge-135/ulrich-rieke/cpp/ch-1.cpp new file mode 100644 index 0000000000..098d1b7fee --- /dev/null +++ b/challenge-135/ulrich-rieke/cpp/ch-1.cpp @@ -0,0 +1,28 @@ +#include <iostream> +#include <string> +#include <regex> + +int main( int argc, char * argv[] ) { + std::string input { argv[ 1 ] } ; + std::string checkRegex( "(^[+-]*\\d+$)" ) ; + std::regex checkReg( checkRegex ) ; + while ( ! std::regex_match( input , checkReg ) ) { + std::cout << "Input should consist of possible signs and digits only!\n" ; + std::getline( std::cin , input ) ; + } + int len = input.length( ) ; + if ( ( len == 4 ) ) { + std::string start { input.substr( 0 , 1 ) } ; + if ( (start == "+") || ( start == "-" ) ) + std::cout << input.substr( 1 ) << std::endl ; + } + else { + if ( len % 2 == 0 ) + std::cout << "even number of digits" << std::endl ; + if ( ( len < 3 ) && ( len % 2 != 0 )) + std::cout << "too short" << std::endl ; + if ( ( len % 2 != 0 ) && ( len > 3 ) ) + std::cout << input.substr( ( len - 3 ) / 2 , 3 ) << std::endl ; + } + return 0 ; +} |
