提问者:小点点

为什么“1”和(char)1在C++中比较时不相等?


我的主要目标是将int类型转换为char类型。我使用进行类型转换,但由于以下结果,它似乎无法工作:

null

if ('1' == (char)1)
{
    return 1;
}

但是,看起来比较要么由于变量类型不同而无效,要么它们实际上不是一回事。我一直认为将整数转换为字符是。有人能告诉我如何将整数转换成字符吗?


共3个答案

匿名用户

根据http://www.asciitable.com/,“1”等于(char)49

(char)1等于,它是一个不可打印的字符。

匿名用户

因为“1”的ASCII等价物是49,而不是1。

匿名用户

'1'==可打印1的字符代码值,传统上是ASCII值,但今天,无论使用什么字符集,都是码位值。

旧的技巧是(ch-'0')来获取数值。

null

C++-

C-(这些也适用于C++)

相关问题


MySQL Query : SELECT * FROM v9_ask_question WHERE 1=1 AND question regexp '(char|c++|中|不相等)' ORDER BY qid DESC LIMIT 20
MySQL Error : Got error 'repetition-operator operand invalid' from regexp
MySQL Errno : 1139
Message : Got error 'repetition-operator operand invalid' from regexp
Need Help?