Δημοσιεύτηκε: 17 Ιουν 2011, 01:10
από migf1
stamatiou έγραψε:Και γιατί άμα είναι αριθμός δεν δουλεύει;
Και γιατί πρέπει εκεί που λέει ++ndigit[c-'0'] δεν γράφω σκέτο c;


Στην C τα char είναι ουσιαστικά int και συγκεκριμένα είναι τα ASCII Codes των χαρακτήρων. Οπότε όταν γράφεις:
Κώδικας: Επιλογή όλων
if (c == '9')

ισοδυναμεί με:
Κώδικας: Επιλογή όλων
if (c == 57)
επειδή 57 είναι ο κωδικός του χαρακτήρα '9' στο ASCII table.

Αντίστοιχα, το:
Κώδικας: Επιλογή όλων
if (c == 9)

ελέγχει αν ο c είναι ο χαρακτήρας με ASCII code ίσο με 9 (που είναι ο χαρακτήρας του tab). Συμπτωματικά, για τον χαρακτήρα του tab η C έχει ειδικό σύμβολο, το '\t' (όπως για το ENTER έχει το '\n', κλπ).

Οπότε, συμπτωματικά επειδή πιάσαμε το 9, το παραπάνω θα μπορούσε να γραφτεί κι έτσι:
Κώδικας: Επιλογή όλων
if (c == '\t')