User Tools

Site Tools


qna:misc:boolean-ctype

Πρόβλημα στη λογική σύγκριση των συναρτήσεων της ctype.h

Οι συναρτήσεις της βιβλιοθήκης ctype, όπως οι: isalpha, isdigit, κλπ επιστρέφουν τιμή που μπορεί να χρησιμοποιηθεί ως λογική μεταβλητή με την έννοια του “μηδέν=false” και “μη μηδενικό=true” , αλλά δεν επιστρέφουν true (δηλαδή την τιμή 1), αλλά κάποια μη-μηδενική τιμή. Γι'αυτό θα πρέπει οι συνθήκες που εμπλέκουν τέτοιες συναρτήσεις, να χρησιμοποιούν κάποιον από τους ακόλουθους τρόπους:

  1. είτε απευθείας χωρίς σύγκριση, ενδεχομένως με τη χρήση του τελεστή not !, π.χ.
    if ( ! isalpha(myChar)) {
  2. είτε εάν πάντα συγκρίνοντας με το false, χρησιμοποιώντας τον κατάλληλο τελεστή == ή !=, π.χ.
    if (isdigit(myDig) != false)

Τα παραπάνω παραδείγματα αναφέρονται σε απλές συνθήκες. Εάν μας ενδιαφέρει μια σύνθετη συνθήκη, τότε μπορούμε να συνδυάσουμε κάποια από αυτές με τη χρήση των κατάλληλων τελεστών π.χ. && ή ||.

Σχετικό με αυτά μπορεί να βρείτε και το ερώτημα για τη χρήση μη-μηδενικών τιμών ως bool, εδώ.

qna/misc/boolean-ctype.txt · Last modified: 2021/04/24 10:05 by xallos