#include<iostream>
#include<string>
#include<array>
#include<locale>
using namespace std;
class endeMachine
{
public:
int findIndex(char letter)
{
int index = 0;
while (letter != alphabet[index])
{
index++;
}//end while letter test
return index;
}//findIndex
string subEncrypt(string clear)
{
string subString = clear;
for (int i = 0; i < clear.length(); i++)
{
subString[i] = substitution[findIndex(clear[i])];
}//end for
return subString;
}//subEncrypt
string transEncrypt(string clear)
{
string subString = clear;
for (int i = 0; i < clear.length(); i++)
{
subString[i] = alphabet[findIndex(clear[i]) + offset];
}//end for
return subString;
}//transEncrypt
private://---------------------------------------------------------
array<char, 26> alphabet = { 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z' };
array<char, 26> substitution = { 'm','l','k','j','i','h','g','f','e','d','c','b','a','z','y','x','w','v','u','t','s','r','q','p','o','n' };
int offset = 3;
};//end endoMachine
int main()
{
endeMachine text;
string clear_text = { "Hello" };
cout << text.subEncrypt(clear_text) << endl;
cout << text.transEncrypt(clear_text) << endl;
cin >> clear_text;
}//end main
Also in diesem Programm, das ich schließlich bin versucht, auf den Punkt zu kommen, wo sie kann:Groß- und Klein String-Verschlüsselung und Entschlüsselung, Grund Chiffre C++
- Verschlüsseln einer Zeichenfolge durch den Endbenutzer eingegeben
- wählen zwischen einer Substitution oder Umsetzungsverfahren für die Verschlüsselung
- die Zeichenfolge Entschlüsseln vorher verschlüsselter post-Eintrag
- zwischen beiden eine der Verschlüsselungsmethoden wählen zu tun, so
- den verschlüsselten String entschlüsseln, ohne die Methode der Verschlüsselung zu wissen, also alle möglichen Ergebnisse
Mein Problem ist, zu erzeugen:
Wenn die Eingabezeichenfolge enthält einen Großbuchstaben, das ganze Programm Abschaltungen. Allerdings, wenn ich etwas in Zeile 12 wie:
while (tolower(letter) != alphabet[index])
die Verschlüsselungsmethoden arbeiten beide, aber die streng Kleine Version des ursprünglich Eingangswortes zurückgeben, die Eingabe von „Hallo“ Ergebnis mache in:
fibby
knoor
bei der Ausgabe statt:
Fibby
Knoor
das bedeutet, dass in irgendeiner Weise, ich brauche individuell für die Aktivierung der einzelnen Buchstaben im Wort zu überprüfen, so dass, wenn es darum geht, Zeit für out put kann der entsprechende Buchstabe der verschlüsselten Zeichenkette groß geschrieben werden, bevor er auf den Bildschirm ausgegeben wird.
BITTE HELFEN !!!
Bitte klären, um den Einzug –
Erste Zeit damit, sorry. Ich habe die Formatierung korrigiert. Hoffentlich kann ich jetzt Hilfe bekommen. @EdHeal – Clanton
Ihre Alphabet-Ersatzschlüssel (in Ihrem Code) scheinen nur Kleinbuchstaben zu berücksichtigen ... – Grantly