07.11.2018 – Zeichenketten

Aufgabe 1: ASCII Verschlüsselung

Die „Cäsar“-Verschlüsselung (Vgl.: http://de.wikipedia.org/wiki/Caesar-Verschl%C3%BCsselung) ist eine sehr einfache Art der Codierung: Um die einzelnen Zeichen eines Eingabetextes zu verschlüsseln, werden alle Zeichen um n Positionen verschoben.

Erstellen Sie eine Konsolenanwendung, die einen String einliest, die einzelnen Zeichen der Zeichenkette um n Positionen verschiebt und das Ergebnis der Verschlüsselung ausgibt. Gestalten Sie den Programmablauf analog dem folgenden Screenshot:

Tipp: Um eine Zeichenkette von der Konsole inklusive Leerzeichen einzulesen, bietet sich cin.getline(eingabeZeichenkette, 80); an.

Aufgabe 2: Decodierung verschlüsselter Information

Erstellen Sie ein neues Projekt mit folgenden Variablendefinitionen:

char codeArray[38]="tckqadvrbfgipcvs/*takngkflbegffpdagke";
char toDecodeOperators[]="-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+";
char toDecodeFactors[]="12312312312312312312312312312312312312";
char outputArray[38];

Im Array codeArray wurde eine Nachricht verschlüsselt. Die decodierte Version des Zeichens erhalten Sie, indem Sie den Zahlenwert (ASCII) jedes Zeichens mit dem entsprechenden Faktor in toDecodeFactors addieren oder subtrahieren (toDecodeOperators).
Ein Beispiel: Um das erste Zeichen in codeArray zu decodieren, wird für den ersten ASCII-Wert des Zeichens (‘t‘ = 116) geprüft, ob der Wert ‘1‘ in toDecodeFactors subtrahiert oder addiert wird. toDecodeOperators an Position 0 (toDecodeOperators[0]) besagt, dass von dem ‘t‘ mit dem Zahlenwert eine 1 (toDecodeFactors[0]) abgezogen (toDecodeOperators[0]) werden muss, um das verschlüsselte Zeichen ‘s‘ zu erhalten.

Implementieren Sie die Decodierungsroutine und generieren Sie folgenden Output: