g1wrg0s
Επιφανές μέλος
Ο 01001 αυτή τη στιγμή δεν είναι συνδεδεμένος. Επαγγέλεται Φοιτητής/τρια. Έχει γράψει 9,074 μηνύματα.
19-06-12
12:01
λες gets(a) κανονικα δεν πρεπει να πεις και τιμη απο τη στιγμη που το a ειναι πινακας???
το strlen για να το παρω πρεπει οπωσδηποτε να εχω παρει #include <string.h> ???
μετα λες i>=0 μα αφου παρει το μεγεθος του string πχ 5 δεν θα ειναι σωστο κανονικα δεν πρεπει να ειναι i<=0???
Ως προς το πρωτο: Νομιζω οτι και εσυ ετσι το ειχες κανει gets(a). Αν σε ενα τερματικο πατησεις man gets θα σου βγαλει το πρωτοτυπο της συναρτησης και τι ακριβως κανει (μπορεις να gouglareis κιολας ). Εκει θα δεις οτι παιρνει ενα const poiner σε χαρακτηρα. Με λιγα λογια καλεις τη gets δινοντας της τη διευθυνση του πρωτου χαρακτηρα απο το αλφαριθμιτικο σου. Για να το πετυχεις αυτο υπαρχουν δυο τροποι gets(a) ή gets(&(a[0]) ) .Επιλεγεις και παιρνεις , το ιδιο πραγμα κανουν.
π.χ αν θες για καποιο λογο η gets να ξεκινησει να γραφει απο την τεταρτη θεση και μετα αυτο που θα εισαγεις σαν εισοδο στο προγραμμα τοτε απλα την καλεις ως εξης gets( &(a[3])); . Για το πρωτο στοιχειο συγκεκριμενα υπαρχουν δυο τροποι που κανουν το ιδιο πραγμα .Αυτοι ειναι οι gets(a) και gets( &(a[0]) ) .
Ως προς το δευτερο: Αυτη η ερωτηση σχετιζεται με την ερωτηση που εκανες στην Αννα απο πανω η οποια σε προετρεψαι να κανεις #include <string.h> οταν θες να χρησιμοποιησεις συναρτησεις που διαχειριζονται αλφαριθμιτικα-strings . Στο προγραμμα σου θες να χρησιμοποιησεις την strlen ή οποια μετρα τα στοιχεια ενος string, δηλαδη διαχειριζεται (στην ουσια το προσπαελαυνει) ενα αλφαριθμιτικο και για ατυο υπαρχει στο αρχειο string.h το οποιο εσυ πρεπει να καλεις καθε φορα που θες να την χρησιμοποιησεις.
Ως προς το τριτο: Η απαντηση ειναι οχι.
Σκεψου. Ξεκινα η for και αρχικοποιει το δεικτη i=μεγεθος_του _πινακα .Επειτα παει να ελεγξει τη συνθηκη ωστε να αποφασισει ΑΝ θα μπει στο βρογχο, βλεπει το δικο σου i<=0 και εφοσον δεν ισχυει δεν θα μπει καθολου και δεν θα εκτελεστει ουτε ενα print . Στην αλλη περιπτωση θα μπει και εφοσον ο δεικτης μειωνεται με βημα 1 καθε φορα θα σταματησει οταν το i γινει -1 . Δηλαδη μεχρι και i=0 θα μπει μεσα στο βρογχο.
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.