Dies ist eine Funktion, die die Anzahl der Zeichen in einer Zeichenfolge zählt:
int str_len(const char* s) {
int i = 0;
while(*(s++)) {
i++;
}
return i;
}
Warum gibt dies die richtige Länge zurück?
Angenommen, ich rufe diese Funktion mit einem einfachen String auf "a"
. Dann s
wird in der while-Schleife inkrementiert, daher sind der Wert von s
und i
beide 0.
, s++
und schlimme Dinge werden passieren:)