Anfänger versteht C-Code nicht

ahykes

Erfahrenes Mitglied
Hallo Leute, ich bin ein ganz blutiger Anfänger in C und habe den folgenden CODE gekommen ( also als Hausaufgabe :rolleyes: ) und soll ihn analysieren. Kann mir einer die Funktion des Programmes erklären ?

Hier der Code :
Code:
# include <stdio.h>	

char klar_txt [81];	
char schluessel [9][9];	
char crypt_txt [81];	
int zeile, spalte, index;	
int  * crypt_ptr;		

int main(void)		
{
	while (1)		
	{
		printf(„\nGeben Sie eine zu verschlüsselnde Zeile ein.“); 
		printf(„\nBitte genau 80 Zeichen!“); 
		gets(klar_txt);	

		index = 0; 	
		for (zeile = 0; zeile < 9; zeile++)				                         for (spalte = 0; spalte < 9; spalte++) 
			{
			schluessel [zeile][spalte] = klar_txt [index];   				index++; 	
			}

		crypt_ptr = crypt_txt; 

		for (spalte = 0; spalte < 9; zeile++) // siehe oben
			for (zeiele =0; zeile < 9; zeile++) // siehe oben
			{
				* crypt_ptr = schluessel [zeile][spalte]; //
				crypt_ptr++; //
			}
		
		printf(„\n %s“, crypt_txt); // Gibt den String crypt_txt aus

		getch();// Hällt das Programm solange an, bis eine Taste gedrückt wird

	}

	return 0;

}
 
Vermutlich passiert ein Absturz, weil oben spalte als Index in das Array benutzt wird, und nicht initialisiert (auf 0 gesetzt ist). Bei der ersten Schleife soll vermutlich auch ein for ... mit spalte drumrum sein?

Da scheint generell etwas in dem Code der ersten Schleife zu fehlen, "index" wird benutzt, aber nie verändert.

Was das Programm vermutlich tun sollte:

Nach der Eingabe der Zeile wird der Text in ein zweidimensionales Array verteilt. (Erste Schleife)

In der zweiten Schleife wird der Text in crypt_txt übertragen, aber ohne den kompletten Code von der ersten (Doppel?-)Schleife zu sehen, sieht es aus, als ob der Text 1:1 übertragen wird.

Prüf mal, ob das wirklich der gesamte Code ist.
 
Zurück