Verschlüsselungsprogramm
-
Hallo Leute,
hab ein kleines Programm mit der unten stehenden Aufgabe. Mein Problem ist das ich nicht genau weis wie oder was ich hier machen soll. Sollen den jeweiligen Buchstaben zahlen zugeordnet werden?!
Ich hoffe ihr könnt mir weiterhelfen und bitte wirklich ausschließlich um verbale ansätze und keinen code!Schreibe eine Funktion zum Verschlüsseln von Ziffern- in Buchstabenfolgen.
Zum Verschlüsseln ist ein sogenanntes Schlüsselwort zu benutzen. Es muß aus genau zehn verschiedenen Buchstaben bestehen.Jeder Ziffer ist auf folgende Weise ein Buchstabe zugeordnet:
0 1 2 3 4 5 6 7 8 9
L A D E N T I S C Hvoid codiereZahl (long zahl, char * key, char * code);
Liebe Grüße
-
Stand bei der Aufgabe nicht auch dabei, wie du verschlüsseln solltest? Eine Möglichkeit wäre es, jede Ziffer durch den entsprechenden Buchstaben auszudrücken (z.B. aus 4711 wird
ESAANSAA).Edit: Jetzt habe ich mich doch verzählt
-
Dave01 schrieb:
.... Sollen den jeweiligen Buchstaben zahlen zugeordnet werden?!
Nein. Umgekehrt. Den Ziffern sollen Buchstaben zugeordnet werden.
Aus 4711 soll dann "NSAA" werden (bei LADENTISCH)
-
Ich hab das Kölnisch Wasser vorher nicht gesehen
-
Ich empfehle ein char-Array mit 10 Einträgen. Dieses füllst du mit dem Schlüsselwort, z.B. dem genannten LADENTISCH. Dadurch ist array[0]='L', array[1]='A', usw.
Dann kannst du deine Zahlen durchgehen und ersetzt sie durch den entsprechenden Eintrag aus dem Array, also z.B. die Ziffer 7 durch array[7].
-
Danke für eure Ansätze !
habs mal so gemacht:
int main() { char a[]="LADENTISCH"; int eing=0; int i=0; int b[10]; printf("Verschlüsselung lösen: "); for(i=0; i < 10; i++) { b[i]=a[i]; } while(1) { scanf("%d", &eing); printf("%c", b[eing]); } return 0; }
sollte glaub ich reichen
(programm dient eh nur zum üben)
-
Da solltest du nur noch berücksichtigen, daß scanf() auch mehrstellige Zahlen entgegennehmen kann (und damit landest du außerhalb deiner Array-Grenzen). Du solltest entweder wirklich zeichenweise einlesen oder die komplette Zahl nehmen und in ihre Ziffern zerlegen.
PS: Ein zweites Array int b[10] für den Schlüssel benötigst du nicht wirklich dafür
-
Dave01 schrieb:
sollte glaub ich reichen
(programm dient eh nur zum üben)Reicht nicht. Du codierst gar nicht.
Zudem sollst du ja auch eine Funktion schreiben:void codiereZahl (long zahl, char * key, char * code);
Und b[10] ist für ein long etwas knapp mit der '\0' am Ende.