habt ihr schon mal ein Programm bzw eine Funktion codiert zur Simulierung einer Skytale? Ich sitze hier an einer Aufgabe und weiß gar nicht was ich machen soll

Folgende Schnittstelle:
Code: Alles auswählen
void skytale (char * in , int n , char *out);
in : Der zu chiffrierende String
n: Die Anzahl der Buchstaben auf einer Skytalenumdrehung (Schlüssel)
out: Der chiffrierte String
Es muss nicht abgeprüft werden, ob für den Ausgabestring genügend Hauptspeicher reserviert wurde, das ist Aufgabe des Hauptprogramms. Der String wird auch nicht in Großbuchstaben transformiert oder Leerzeichen entfernt (wie im Beispiel der TU Freiberg durchgeführt)!
Die gesamte Kommunikation der Funktion muss über die Schnittstelle erfolgen.
Innerhalb der Funktion sind keine Ein- und Ausgaben erlaubt.
Es sind keine globalen Variablen erlaubt.
Ein Prototyp der Funktion ist Pficht.
Es werden keine Leerzeichen eingefügt, auch nicht wenn die Länge des Eingabetextes nicht durch n teilbar ist!
Verändern Sie ein zu chiffrierenden Text nicht!!!!!!
Der chiffrierte Text muss die gleiche Länge haben wie der zu chiffrierende Text!!
Auch wenn es in dem obigen Beispiel danach aussieht, es werden keine zweidimensionalen Felder benötigt!
Tip: Der eigentliche Chiffrier-Teil Ihres Programms ist in drei bis fünf Zeilen codierbar.
Anmerkung: Wenn n die Schlüssellänge ist und l die Länge des Strings und l mod n = 0, also l ein ganzzahliges Vielfaches von n ist, so kann mit einem Dechiffrierungs-Schlüssel nd = l/n mit
demselben Algorithmus dechiffriert werden. Dies kann zum Testen des Programms genutzt werden.
Folgenden Code hab ich bisher:
Code: Alles auswählen
#include <stdio.h>
#include <string.h>
void skytale(char * in, int n, char * out);
void skytale(char * in, int n, char * out) {
// ...
}
int main() {
char s1[1000] = "DIESERKLARTEXTISTJETZTZUVERSCHLUESSELN12",s2[1000],s3[1000];
int n = 20, l = strlen(s1);
printf("%s\n", s1);
printf("Laenge: %d\n", l);
skytale(s1, n, s2); // Chiffriere s1 zu s2 mit 8 Buchstaben pro Umdrehung
printf("%s\n", s2);
if (l % n == 0) {
skytale(s2, l / n , s3); // Chiffriere zurueck
printf("%s\n", s3);
if (!strcmp(s1, s3))
printf("In diesem Fall OK\n");
else
printf("Problem!\n");
}
system ("PAUSE");
return 0;
}
