0
Cのint値とchar値を比較する際に問題があります。私は変数int value1が0で、charが値 '0'です。私はそのcharの値は実際ascii番号で、 '0'は48だと知っていますが、例としてif文でintの0の値をcharsの '0'の値と比較するにはどうすればよいですか?Cの値を比較する際に問題が発生しました
Cのint値とchar値を比較する際に問題があります。私は変数int value1が0で、charが値 '0'です。私はそのcharの値は実際ascii番号で、 '0'は48だと知っていますが、例としてif文でintの0の値をcharsの '0'の値と比較するにはどうすればよいですか?Cの値を比較する際に問題が発生しました
イディオムc - '0'
を使用すると、char
c
を同等の数字に変換できます。
これはタイプint
の式です。
C標準でサポートされている任意の文字で動作することに注意してください。このようなエンコードでは0〜9の連続番号が必要です。
"実際にはアスキー番号です" - 必ずしもそうではありません。 – Bathsheba
'if(int_value == char_value - '0')' – BLUEPIXY
結果(int)(char_value - '0')もキャストする必要があります。そうしないと、コンパイラが警告を出します。 – SPlatten