C++ :: Aufgabe #27 :: Lösung #2

4 Lösungen Lösungen öffentlich
#27

Mit Caesar Chiffre ent- und verschlüsseln

Anfänger - C++ von Dome - 03.01.2013 um 01:30 Uhr
Schreiben Sie ein Programm, indem Sie mit Hilfe der Caesar Chiffre einen beliebigen Text ent- und verschlüsseln können. Zuvor muss der Text und die Anzahl der Verschiebung angegeben werden. Groß- und Kleinschreibung muss nicht beachtet werden.

Konsolenausgabe:

Geben Sie den Text ein: Beispielwort
Um wie viele Stellen soll verschoben werden: 1
Ergebnis: Cfjtqjfmxpsu
#2
vote_ok
von progdoc (2220 Punkte) - 03.01.2013 um 22:30 Uhr
Quellcode ausblenden C-Code
#include <string>
#include <iostream>
#include <algorithm>
#include <cctype>

class MyTransform {
private : 
   int shift ;
public :
   MyTransform( int s ) : shift( s ) { } 

   char operator( )( char c ) {
      static std::string letters( "abcdefghijklmnopqrstuvwxyz" ) ;
      std::string::size_type found = letters.find(tolower( c )) ;
      int shiftedpos = ( static_cast<int>( found ) + shift ) % 26 ;
      char shifted = letters[shiftedpos] ;
      return shifted ;
   }
} ;

int main( ) {
   std::string input ;
   std::cout << "Welcher Text soll verschluesselt werden ?\n" ;
   getline( std::cin , input ) ;
   std::cout << "Verschiebung ?\n" ;
   int myshift = 0 ;
   std::cin >> myshift ;
   std::transform ( input.begin( ) , input.end( ) , input.begin( ) ,
	 MyTransform( myshift ) ) ;
   std::cout << "Nach der Verschlüsselung:\n" ;
   std::cout << input << std::endl ;
   return 0 ;
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben