Δημοσιεύτηκε: 30 Αύγ 2011, 18:41
Δεν είναι: *save = s1; αλλά: save = s1;
Στον κώδικα που έχω δώσει είναι αρχικοποίηση: char *save = s1; Δηλαδή ορισμός και ανάθεση αρχικής τιμής σε ένα βήμα.
ΥΓ1. Γιώργο, με "a", "ab" δεν λειτουργεί σωστά, αλλά αλγοριθμικά το έχεις προσεγγίσει πολύ!
Τον έλεγχο για το αν το s1[i] είναι '\0' βγάλτο από τη συνθήκη του loop και βάλτο με ένα if μέσα στο loop... αν ισχύει, επέστρεφε 0. Έξω από το loop επέστρεψε: s1[i] - s2[--i] 
ΥΓ2. Κώστα, έχω την εντύπωση πως το %p δεν είναι στάνταρ, δεν είμαι 100% σίγουρος όμως.
Στον κώδικα που έχω δώσει είναι αρχικοποίηση: char *save = s1; Δηλαδή ορισμός και ανάθεση αρχικής τιμής σε ένα βήμα.
ΥΓ1. Γιώργο, με "a", "ab" δεν λειτουργεί σωστά, αλλά αλγοριθμικά το έχεις προσεγγίσει πολύ!
ΥΓ2. Κώστα, έχω την εντύπωση πως το %p δεν είναι στάνταρ, δεν είμαι 100% σίγουρος όμως.
Star_Light έγραψε:stamatiou έγραψε:Αυτό το %p στην printf τι είναι; Πρώτη φορά το βλέπω! Έγραψα στο terminal man printf αλλά μου έβγαλε (μάλλον) μια εντολή του bash...
Ο μορφοποιητης %p φιλε σταματιου χρησιμοποιειται απο την ANSI τυποποιηση εχω διαβασει πως αν για καποιο λογο ο μεταγλωτιστης σου δεν το υποστηριζει μπορεις να δοκιμασεις με τους %u ή %lu .
Btw Με αυτη την "παρουσιαση" που εκανα καταλαβα και τα *s1=*s2 γιατι μπορουμε να τα χρησιμοποιησουμε απευθειας αλλωστε οι συμβολοσειρες ειναι πινακες χαρακτηρων. Τωρα μενει μονο να καταλαβω γιατι *save=s1;
και return save; Απλα δεν καταλαβαινω το γεγονος οτι δηλαδη το *save περιμενει δεξια τιμη λογω αστερισκου αρα πως του βάζουμε εμεις αριστερη τιμη... εχω φαει κομπλα σε αυτο γερη. Παω να ψωνισω τιποτα απο το σουπερμαρκετ και επανερχομαι.![]()
Π.Σ Α δεν ανηκει τελικα το %p στα στανταρ?