Verschlüsseln
Zeit für ein weiteres Projekt! Dieser Checkpoint setzt die Zeichenketten und Funktionen aus den letzten beiden Lektionen ein, zusammen mit allem, was du davor gelernt hast. Wie in den früheren Checkpoints sagen die Anweisungen, was das Programm ausgeben soll, und jede Übung führt dein Programm auch mit anderen Daten aus.
Das Projekt. Du und ein Freund schickt euch geheime Nachrichten. In drei Übungen verschlüsselt dein Programm eine Nachricht, entschlüsselt die Antwort deines Freundes und knackt schließlich eine Nachricht, deren Schlüssel du nicht kennst.
Die Verschlüsselung. Du verwendest eine der ältesten Verschlüsselungen, die schon Julius Caesar benutzt haben soll: Jeder Buchstabe rückt ein paar Stellen im Alphabet weiter. Bei einer Verschiebung um 3 wird a zu d, b zu e und so weiter. Am Ende des Alphabets geht es von vorn weiter: x wird zu a, y wird zu b und z wird zu c. Wir verwenden nur die 26 Buchstaben von A bis Z (Umlaute und ß kommen in den Nachrichten nicht vor). Großbuchstaben bleiben Großbuchstaben, und alles, was kein Buchstabe ist, wie Leerzeichen, Ziffern und Satzzeichen, bleibt, wie es ist.
Die Daten. Das Array nachricht enthält die Nachricht, und verschiebung sagt, um wie viele Stellen sich jeder Buchstabe verschiebt. Das Programm muss auch für andere Nachrichten funktionieren und für jede Verschiebung von 1 bis 25.
Die Aufgabe. Gib die Nachricht und darunter die verschlüsselte Nachricht aus:
Nachricht: Triff mich um sechs am Zoo
Geheim: Wulii plfk xp vhfkv dp CrrEin Tipp: Schreibe eine Funktion, die einen Buchstaben verschiebt und den neuen zurückgibt. Du brauchst sie in den nächsten beiden Übungen wieder. Ein Zeichen ist eine Zahl (erinnere dich an die Lektion über Variablen), du kannst also damit rechnen, und mit % kommst du zurück an den Anfang des Alphabets. Die Funktionen aus ctype.h sagen dir, ob ein Zeichen ein Buchstabe ist und ob es ein Großbuchstabe ist.
So schreibst du es:
Anweisungen
- 1
Gib die Nachricht und die verschlüsselte Nachricht aus, wie im Beispiel.