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


Anmelden zum Antworten