Alf postete Nun sucht die Schleife Rückwerts nach dem Zeichen '/' und überschreibt dann das nach folgende Byte mit dem Zeichen '0' (Wert 48 ASCII).
Wo hast du die Schleife denn her?
also ich sehe nicht wo er das nachfolgende byte mit der '0' überschreibt! wäre für mich nicht schlecht wenn du das noch mal an den zeilen erklären könntest.
ist aus einem quelltext von einem tool was ich modifizieren soll.
Hasst du einen String z.B. “Eintrag1/ Eintrag2/ Eintrag3/ Eintrag4/ Eintrag5“ dann Zählt die Funktion die Einträge von hinten so oft durch, wie du in components angibt und Returnt die Adresse des Eintrags. Z.B. components = 2 dann Returnt die Funktion die Adresse von Eintrag4. Ist components größer als die Anzahl der Einträge dann gibt´s die Adresse von Eintrag1. Und das Funtz Fehler frei.
Sorry!
Das mit der '\0' (NULL): Die Adresse von path ändert sich nicht wehrend der Funktion. Die Funktion strrchr(...) würde immer die selbe Adresse Returnen. Daher Setzt er an die Stelle wo er zu letzt war eine NULL. Die Funktion strrchr(...) Liest nun, den String, nur bis dort hin ein, um das nächste '/' zu finden. Das zweite if(mark)*mark = '/'; stellt dann wieder den Ursprung des Strings her. -- Mfg
AndyDieser Post wurde am 11.10.2003 um 01:52 Uhr von Alf editiert.