Zitat von
M00rk
was danach passiert ergibt für mich keinen sinn (i wird deklariert, ist die länge des eingegeben wortes -1. nun wird anscheinend i dekrementiert solange die zahl grösser oder gleich null ist.)
Ein Array startet mit dem Element 0.
Sagen wir also du hast folgenden String: "a" (ohne die Anführungszeichen).
Die Länge beträgt 1 Zeichen - und das ist auch was strlen zurückgibt.
Da "a" aber bei 0 liegt (der Array fängt, wie gesagt, bei 0 an) substrahiert man 1.
Selbiges gilt für den String "ab": Länge = 2 Zeichen
Elemente:
[0] = 'a'
[1] = 'b' // <---- strlen(der_string) - 1
Wir können also sagen:
strlen(der_string) - 1 = Index des letzten Zeichens (sofern der String mindestens ein Zeichen enthält)
Also macht die Schleife folgendes:
Code:
int i = Index des letzten Elements im char-Array
SOLANGE i GRÖßER GLEICH 0 (das nullte Element gehört mit dazu)
AUSGABE: der_string[i] (das Zeichen mit dem Index i ausgeben)
i = i - 1 (i dekrementieren, dh. den Index auf den voranliegenden char setzen)
/SOLANGE