>>716
intだからこそ問題となることがある。
isdigitに渡す引数がchar型だったとして、その値が負なら符号拡張された値が渡されてしまう。
is系関数が受け取れる引数の値の範囲は0からUCHAR_MAXまでとEOFのみ。
よって、負の値を渡したらまず間違いなく未定義の動作になってしまう。

ASCIIの文字だけしか入っていないなど、char型の値が負でないと確実に言えるのであれば、
unsigned charへキャストしてやる必要はない。