Hallo!
*out und *in sind die char-Zeiger die auf die Zeichenketten zeigen.
In der Funktion gibts dann zwei Pointer, die beide Arrays durchlaufen
Code:
unsigned int str_copy(char *out,const char *in) {
register char* s=out; // der Pointer "s" durchläuft das Array "out"
register const char* t=in; // der Pointer "t" durchäluft das Array "in"
for (;;) { // Endlosschleife: bricht erst ab, wenn es ein
// break gibt
if (!(*s=*t)) break; ++s; ++t;
// Der Inhalt von s wird auf den Inhalt von t gesetzt, d.h. t wird stückweise in s kopiert.
// Wenn es dabei einen Fehler gibt, wird mit "break aus der for-Schleife gesprungen
// Ansonsten werden s und t um 1 erhöht und zeigen auf den nächsten Buchstaben im String
if (!(*s=*t)) break; ++s; ++t; // unnötig, da es eh wiederholt wird
if (!(*s=*t)) break; ++s; ++t;
if (!(*s=*t)) break; ++s; ++t;
}
return s-out; // Position von Zeiger "s" MINUS Position von "out"
// entspricht der Länge des Wortes
}
Lesezeichen