2017-09-27 8 views
0

Cのint値とchar値を比較する際に問題があります。私は変数int value1が0で、charが値 '0'です。私はそのcharの値は実際ascii番号で、 '0'は48だと知っていますが、例としてif文でintの0の値をcharsの '0'の値と比較するにはどうすればよいですか?Cの値を比較する際に問題が発生しました

+0

"実際にはアスキー番号です" - 必ずしもそうではありません。 – Bathsheba

+0

'if(int_value == char_value - '0')' – BLUEPIXY

+0

結果(int)(char_value - '0')もキャストする必要があります。そうしないと、コンパイラが警告を出します。 – SPlatten

答えて

2

イディオムc - '0'を使用すると、charcを同等の数字に変換できます。

これはタイプintの式です。

C標準でサポートされている任意の文字で動作することに注意してください。このようなエンコードでは0〜9の連続番号が必要です。

関連する問題