Verschlüsselung in C++ ohne Schleifen
Hallo ich soll für die Ausbildung eine Verschlüsselung programmieren und ich darf keine Schleife verwenden.
Diesbezüglich habe ich Probleme weil ich nicht weiss wie ich die Buchstaben verschieben soll
Code:
auf eure Hilfe bin ich sehr dankbar und bis bald.
Diesbezüglich habe ich Probleme weil ich nicht weiss wie ich die Buchstaben verschieben soll
Code:
#include <iostream>
#include<string>
using namespace std;
string Teingabe;
string Ausgabe;
int ascii;
int ascii()
{
if (ascii >= 65 && ascii <= 90) {
cout << ascii;
}
}
int entschluesselungsprogramm()
{
int schrittweite;
cout << "Bitte geben sie die Schrittweite der Entschl\x81sselung ein" << endl;
cin >> schrittweite;
cout << "Sie haben eine Schrittweite von " << endl;
cout << schrittweite << " gew\x84hlt." << endl;
cout << "Bitte geben sie jetzt den Text ein, den sie Entschl\x81sseln wollen ein: ";
getline(cin, Teingabe);
return 0;
}
int verschluesselungsprogramm()
{
int schrittweite;
cout << "Bitte geben sie die Schrittweite der Verschl\x81sselung ein" << endl;
cin >> schrittweite;
cout << "Sie haben eine Schrittweite von " << endl;
cout << schrittweite << " gew\x84hlt." << endl;
cout << "Bitte geben sie jetzt den Text ein, den sie Verschl\x81sseln wollen ein: " << endl;
cin >> Teingabe;
getline(cin, Teingabe);
return 0;
}
int main()
{
string eingabe;
cin >> eingabe;
cout << "Programm der Caesar-Verschl\x81sselung " << endl;
cout << "Bitte w\x84hlen sie aus:" << endl;
cout << "Entschl\x81sseln <1>" << endl;
cout << "Verschl\x81sseln <2>" << endl;
cout << "Programm beenden <3>" << endl;
if (eingabe == "1")
{
cout << "Entschl\x81sselungs-Programm" << endl;
entschluesselungsprogramm();
}
else if (eingabe == "2")
{
cout << "Verschl\x81sselungs-Programm" << endl;
verschluesselungsprogramm();
}
else if (eingabe == "3")
{
cout << "Dankesch\x94n, Meister und auf Wiedersehen!" << endl;
}
else
{
cout << "Diese Option steht nicht zur Auswahl!" << endl;
cout << "---------------------------------------\n";
}
main();
return 0;
}
auf eure Hilfe bin ich sehr dankbar und bis bald.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator tomolpi am 19.11.2021 um 22:19:52 Uhr
Titel korrigiert und Code formatiert
Content-ID: 1530699503
Url: https://administrator.de/forum/verschluesselung-in-c-ohne-schleifen-1530699503.html
Ausgedruckt am: 21.12.2024 um 16:12 Uhr
5 Kommentare
Neuester Kommentar
Offensichtlich ist dieses ganze Eingabe, Ausgabe, "Dankeschön Meister" Gedöns nicht das, auf was du dich konzentrieren solltest. Nimm irgendeinen String, schreib ihn hart in den Code und entwickle erst mal die notwendigen Algorithmen.
Steffen
darf keine Schleife verwenden
Dann ist das wonach du suchst vermutlich "Rekursion".#include <iostream>
#include <string>
static void RecursionTest(const std::string::const_iterator currentIter, const std::string::const_iterator endIter)
{
if (currentIter == endIter)
return;
std::cout << *currentIter << std::endl;
RecursionTest(currentIter + 1, endIter);
}
int main()
{
const std::string testString{ "Hello World!" };
RecursionTest(testString.cbegin(), testString.cend());
return 0;
}
Steffen
Cäsar Chiffre beruht auf Cäsar Ersetzung (genau wie ROT13, Atbash, oder Vigenere Chiffre). Da ein char nichts weiter als ein ganzzahliger Wert ist, kannst du einfach addieren oder subtrahieren. Die einzige Herausforderung ist, dass eine Cäsar Ersetzung rotierend ersetzen soll. Angenommen dein char ist 'X' und dein gültiger Bereich ist 'A' bis 'Z', dann soll bei einer Addition von 4 zum Anfang des Bereiches umgeschlagen werden, sodass das resultierende char 'B' ist. Diese Routine zu implementieren, ist deine eigentliche Aufgabe.
Steffen
Steffen