09/01/17 16:43:06
>>153
scanf() で %c を指定すると、1バイトのデータしか入力しません。
'A' を入力すれば、0x41 です。
int型変数 c は、例えば宣言時に不定値が設定されていて 0xffff だったとすると、
それに 0x41 だけを入力するので、0xff41 になってしまいます。
これでは is○○関数では正しい判断は行えません。
回避策ですが、scanf を使わずに、getchar を使う(getchar関数は int型の文字を返却します)。
もしくは、宣言時に int c = 0; とし、0 で変数を初期化するかです。