Cast char to unsigned char before passing to ctype(3) isXYZ.

The ctype(3) routines take an int, but the only valid arguments are
EOF and values representable as unsigned char.  This is what you get
out of, e.g., getc(3), but an arbitrary value of type char is not OK
because negative values will lead to nasal demons.  Converting an
arbitrary value of type char to unsigned char is OK, since then we
have only non-negative values, and casting that to int makes it
clearer what's going on.