Tasudo έγραψε:Μπορώ να πώ ότι κατάλαβα πλέον,σε ευχαριστώ πολύ και να είσαι σίγουρος ότι διάβασα τον κώδικα εις βάθος.
Απλά σε ότι σύγραμμα έχω πάνω σε C δεν έχει τίποτα πάνω σε δυναμική μνήμη και ό,τι ξέρω το διάβασα μέσα από ένα όχι και τόσο ευανάγνωστο pdf και είναι ΚΑΙ αυτός ένας λογος που τα μπερδεύω και τα κάνω μαντάρα
Ότι απορία έχεις και ξέρω πολύ ευχαρίστως να βοηθήσω! Δεν ξέρω αν μιλάμε στα πλαίσια κάποιας σχολής ή απλά δικιάς σου ενασχόλησης, αλλά αν είναι το 2ο ίσως είναι καλύτερα να ξεκινήσεις με όσο το δυνατόν πιο απλά παραδείγματα μπορείς. Π.χ. αντί για τη δομή infoT που αποτελείται από δυο strings, θα μπορούσες να ξεκινήσεις με μια απλούστερη δομή, όπως π.χ.
- Κώδικας: Επιλογή όλων
typdef struct point{
int x, y;
} Point
που δεν έχει strings της μέσα της για να σε μπερδεύουν.
έγραψε:
Επίσης,υπάρχει τρόπος διαχωρισμού των ψηφίων μέσα από ένα string?
Για παράδειγμα
string[1] = "54 Palaion Patron"
υπάρχει τρόπος να αναγνωριστούν τα ψηφία 5 και 4 και να εκχωρηθούν σε κάποιο άλλο string για παράδειγμα?
ΜΗΝ μου δώσετε λύση μέσω κώδικα,μόνο τα απαραίτητα "εργαλεία"αν γίνεται γιατί θέλω να το προσπαθήσω.
Έχω διαβάσει κάποιες συναρτήσεις της <ctype.h> όπως την isdigit αλλά δεν κατάλαβα πώς θα μπορούσαν να
χρησιμοποιηθούν στην συγκεκριμένη περίσταση
Ο παραπάνω ορισμός είναι λάθος, γιατί ορίζεις το string να έχει μέγιστο μήκος 1 χαρακτήρα, αλλά το αρχικοποιείς με τιμή που έχει 18 χαρακτήρες (τον 18ο τον βάζει η C για το '\0' στην προκειμένη περίπτωση).
Τώρα, σχετικά με τον διαχωρισμό των χαρακτήρων ενός string, είναι ήδη ξεχωρισμένα. Τα strings είναι πίνακες χαρακτήρων (απλά πρέπει να έχουν τον χαρακτήρα '\0' στο τέλος τους). Οπότε αν δηλώσεις το παραπάνω σωστά, π.χ.
- Κώδικας: Επιλογή όλων
char string[18] = "54 Palaion Patron";
τότε το string[0] είναι ο 1ος χαρακτήρας (δηλαδή το '5') και το string[16] είναι ο 17ος χαρακτήρας (δηλαδή το 'n')... το string[17] είναι το '\0'.
Στην υπογραφή μου θα βρεις ένα link προς ένα tutorial που έχω γράψει για strings, ίσως σε βοηθήσει.