Δημοσιεύτηκε: 11 Αύγ 2011, 19:19
από migf1
stamatiou έγραψε:Ναι αλλά κανονικά δεν θα μπορούσα να το κάνω και int αφού ουσιαστικά τα chars είναι ints με βάση το ASCI table;

Τα chars είναι υποσύνολα των ints (τα char είναι εγγυημένα 1 byte, ενώ τα int είναι εγγυημένα τουλάχιστον 2 bytes). Για να κάνεις αυτό που λες παραπάνω, θα μπορούσες να χρησιμοποιήσεις cast:
Κώδικας: Επιλογή όλων

size_t mystrlen( const char *s)
{
const int *pointer = (int *) &s[0];
...
}
αλλά δεν υπάρχει λόγος, δηλώνεις απευθείας τον *pointer const char και ξεμπερδεύεις

έγραψε:Επίσης έκανα τις συναρτήσεις να μην μετρούν το \n επειδή πχ έγραφα abc και έβγαζε 4 γι' αυτό είπα να το αφήσω να μετρά μικρά κομμάτια κειμένου :angel:

Αυτό συμβαίνει γιατί το string το διαβάζεις με την fgets() η οποία διατηρεί και το '\n' μέσα στο string. Αν το διάβαζες με την s_get() ή την s_getflushed() δεν θα είχε '\n' στο τέλος του το string.