Δημοσιεύτηκε: 28 Μαρ 2012, 15:03
Ilias95 έγραψε:@migf1
Επειδή θα καταπιαστώ αργότερα με τον string-tokenizer ξαναρωτάω για κάτι που δεν κατάλαβα.
Έστω ότι περνάω σαν string με delimiting characters το παρακάτω: "ab".
Αυτό σημαίνει ότι θα "σπάει" το string όπου βρίσκει "ab" ή θα το σπάει όπου βρίσκει "a" ή "b".
Το πρώτο το θεωρώ πιο λογικό (έτσι δουλεύει και η split() στην python), αλλά κάπου μπερδεύτηκα από τα γραφόμενα σου.
Θα προσπερνάει (σπάει) όπου βρίσκει οποιονδήποτε από τους delimiters, είτε μεμονωμένους είτε συνεχόμενους σε οποιονδήποτε συνδυασμό. Αυτό το κάνει για σένα η strtok(), την οποία και θα είναι καλό να χρησιμοποιήσεις (αλλιώς θα παιδευτείς πολύ, χωρίς να υπάρχει λόγος).
έγραψε:migf1 έγραψε:Ο string-tokenizer είναι πολύ όμορφη και πάρα πολύ χρήσιμη συνάρτηση, και λογικά δεν θα το καταφέρεις πολύ εύκολα να είναι re-usable.
Επίσης εδώ πέρα τι ακριβώς εννοείς re-usable;
Αφού θα είναι μία αυτόνομη συνάρτηση, αναγκαστικά δεν θα είναι re-usable; Εννοείται ότι δεν θα χρησιμοποιήσω global μεταβλητές.
Ή άλλο καταλαβαίνω;
Εννοώ πως δεν πρέπει να έχει εξαρτήσεις από τυχόν τύπους, μεταβλητές, συναρτήσεις κλπ που ορίζονται μονάχα στο δικό σου πρόγραμμα. Μπορεί προφανώς να περιέχει στάνταρ συναρτήσεις όμως.
έγραψε:Τέλος, άλλη είναι η prompt_for και άλλη η LIBS;
Ναι, η LIBS είναι μια συλλογή από αυτόνομες συναρτήσεις διαχείρισης strings, που μπορούν να χρησιμοποιηθούν εναλλακτικά εκείνων του <string.h> ή/και ως προέκταση του <string.h>.
Η prompt_for() ασχολείται αποκλειστικά με την κύρια είσοδο... δίνει δηλαδή εναλλακτική στις στάνταρ συναρτήσεις εισόδου.
Και οι 2 υποστηρίζουν 8-μπιτους χαρακτήρες (δηλαδή τον τύπο char και όχι τον wchar_t).