====== Πρόβλημα στη λογική σύγκριση των συναρτήσεων της ctype.h ======
Οι συναρτήσεις της βιβλιοθήκης ctype, όπως οι: ''isalpha'', ''isdigit'', κλπ επιστρέφουν τιμή που μπορεί να χρησιμοποιηθεί ως λογική μεταβλητή με την έννοια του "μηδέν=false" και "μη μηδενικό=true" , αλλά δεν επιστρέφουν true (δηλαδή την τιμή 1), αλλά κάποια μη-μηδενική τιμή. Γι'αυτό θα πρέπει οι συνθήκες που εμπλέκουν τέτοιες συναρτήσεις, να χρησιμοποιούν κάποιον από τους ακόλουθους τρόπους:
- είτε απευθείας **χωρίς σύγκριση**, ενδεχομένως με τη χρήση του τελεστή not ''!'', π.χ.
if ( ! isalpha(myChar)) {
- είτε εάν πάντα **συγκρίνοντας με το false**, χρησιμοποιώντας τον κατάλληλο τελεστή ''=='' ή ''!='', π.χ.
if (isdigit(myDig) != false)
Τα παραπάνω παραδείγματα αναφέρονται σε απλές συνθήκες. Εάν μας ενδιαφέρει μια σύνθετη συνθήκη, τότε μπορούμε να συνδυάσουμε κάποια από αυτές με τη χρήση των κατάλληλων τελεστών π.χ. ''&&'' ή ''||''.
Σχετικό με αυτά μπορεί να βρείτε και το ερώτημα για τη χρήση μη-μηδενικών τιμών ως bool, [[qna:misc:boolean-non-zero|εδώ]].