ASCIIエンコーディングが問題を起こすことがあると思うが、文字を減算するとどのくらいの問題が起こるかわからない。私は、比較的一般的なシナリオが次のいずれかを誤って評価する原因となることを知りたいと思います。考えるC++ char subtraction
:
std::string test = "B";
char m = 'M';
A)(m-'A')==12
B)(test[0]-'D') == -2
はまた、()77
109
にOFCを変更する小文字の値のための答えを変更していますか?
編集:標準は、標準の2.3
が中に不明であるセクション、'2'-'0'==2
は、すべての桁のため0-9
を保持しなければならないが、私はそれがa-z
とA-Z
のために保持しているかどうかを知りたいと言うと言って、char型の数字のためDigit subtraction答えこの質問を、私の読書。
編集2:質問をより明確にするために、アスキー固有のコンテンツを削除しました(申し訳ありません@πάντα-ῥεcontentのコンテンツ変更編集ですが、必要と感じています)。基本的には、基本セットの文字の順序付けを暗示しているようですが、一部のエンコーディングではその順序は維持されません。
downvotes/close voteコメントしますか? http://stackoverflow.com/questions/36310181/char-subtraction-in-cそれは数字だけのための保持として標準を引用しているので、重複imhoではありません。 –
'char'が符号なしの場合はどうなりますか? –
@DavidSchwartz良い点ですが、私の例はすべて署名されています。 –