Codieren und Decodieren von Text
-
Ich soll ein Programm schreiben, das wahlweise einen eingegebenen Text veroder
entschlüsselt. Die eigentliche Ver- und Entschlüsselung soll in eigenen
Funktionen – also nicht in der main-Funktion – geschehen.Der Benutzer soll ein erst entscheiden ob der Text verschlüsselt oder entschlüsselt werden soll und dann den Text eingeben max 100 Zeichen.Die Funktion zum Verschlüsseln eines Textes soll Codiere heißen und
bekommt drei Parameter: Der erste Parameter ist die Zeichenkette, die
verschlüsselt werden soll, d.h. es wird ein Zeiger auf das erste Zeichen des
Textes übergeben. Der zweite Parameter ist die Zeichenkette, in der der
verschlüsselte Text gespeichert werden soll und der dritte Parameter ist eine
Zahl für die Verschlüsselung (siehe unten). Als Ergebnis der Funktion soll die
Zeichenkette, in der der verschlüsselte Text gespeichert wurde, zurückgegeben
werden.Für die Verschlüsselung gibt es mehrere Möglichkeiten: Die einfachste
Möglichkeit ist die Addition der ASCII-Werte der einzelnen Zeichen mit der
übergebenen Zahl (dritter Parameter). Dies ist auch im unten stehenden
Beispiel verwendet worden; der dritte Parameter ist dabei eine 1. Es sind aber
auch andere Rechenoperationen möglich, z.B. ein Exklusiv-Oder. In jedem Fall
muss auch der Fall betrachtet werden, dass das Ergebnis dieser Rechenoperation
den Wertebereich der Zeichen (char) überschreitet.
Die Entschlüsselung muss entsprechend die Umkehrfunktion sein.Alle, die zum Löschen des Tastaturpuffers die do-while-Schleife verwenden
können diese auch in eine Funktion tun und
dann an den entsprechenden Stellen diese Funktion aufrufen.Es ist eine Konsolenanwendung!
Kann mir einer Weiterhelfen, weil ich bin Student Maschinenbau und habe Informatik ein Semester lang und habe davon vorher noch nie was gehört oder etwas gemacht!!
# include <stdio.h> # include <stdlib.h> int main () { //Variablen unsigned char Text [101]; char c; system ("CLS"); printf("Codierer V1.0\n"); printf("=============\n"); printf("1. Text verschluesseln\n"); printf("2. Text entschluesseln\n"); printf("9. Programmende\n\n"); printf("Ihre Wahl:\n"); scanf("%c", &c);fflush(stdin); switch (c) { case '9': printf("Sie haben das Programm beendet!\n\n"); return 0; case '1': printf("Geben Sie bitte den Text ein <max. 100 Zeichen>,\n"); printf("der verschluesselt werden soll:\n");scanf ("%150[^\n]", Text); case '2': printf("Geben Sie bitte den Text ein <max. 100 Zeichen>,\n"); printf("der verschluesselt werden soll:\n");scanf ("%150[^\n]", Text); }//Switch Anweisung return 0; }
-
was ist jetzt dein problem?

-
du hast doch schonmal einen guten ansatz fertig
jetzt brauchst du nurnoch 2 funktion zum verschlüsseln...
-
darfst du std::cout und std::cin nicht verwenden?
std::string ist auch toll# include <stdio.h> # include <stdlib.h>ist C - in C++ sind die Header deprecated.
#include <cstdio> #include <cstdlib>Für die Verschlüsselung gibt es mehrere Möglichkeiten: Die einfachste
Möglichkeit ist die Addition der ASCII-Werte der einzelnen Zeichen mit der
übergebenen Zahl (dritter Parameter).Hmm... Ich denke, dass ein XOR die einfachste Möglichkeit wäre...
Einfach addieren würde ich mir nicht getrauen...Bsp.:
Z soll verschlüsselt werden und irgendwie ist der Parameter zum Versclhüsseln
123 (wenn ich mich ne verguckt hab, sollte 255 rauskommen) - so weit ich weiß, ist es nicht sicher, dass das als 0 interpretiert wird. Korrigiert mich, wenn ich falsch liege ^^bb
-
Mein Problem ist ich habe keine ahnung davon und soll mit einer Funktion nicht main decodieren bzw. codieren.........
Also ich habe das so gemacht weil ich in C programmieren soll......!
Naja in dem beispiel programm von meinem dozenten ist das so
wenn ich HALLO ein gebe verschlüsselt er es so IBMMP also ein Buchstabe im Alphabet weiter um zu verschlüsseln und beim decodieren genau anders rum!!
UNd wie gesagt ich bin Student Maschinenbau habe vorher noch nie was von C gehört und weiß halt nicht wie ich weiter machen soll
-
Also ich habe das so gemacht weil ich in C programmieren soll......!
-> Forum : Ansi C
Simon