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
2102587

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.