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

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
#3
1x
vote_ok
von Sone (2570 Punkte) - 04.01.2013 um 11:06 Uhr
Quellcode ausblenden C-Code
#include <iostream>
#include <string>
#include <iterator>

int main()
{
    using namespace std;

    string str;
    getline(cin, str);

    std::cout << "Stellen: ";
    auto shift = *std::istream_iterator<unsigned>(std::cin);

    auto shift_for_all = [&str, shift](char base, char end)
    {
        for(auto& c : str)
            if(c >= base && c <= end)
                c = (c - base + shift) % (end - base) + base;
    };

    shift_for_all('A', 'Z');
    shift_for_all('a', 'z');
    shift_for_all('0', '9');

    std::cout << "Digits and characters shifted: " << str;
}

Kommentare:

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

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