在 C 和 C++ 中将 char 转换为 int
问题描述:
如何在 C 和 C++ 中将 char
转换为 int
?
How do I convert a char
to an int
in C and C++?
答
取决于你想做什么:
以ASCII码形式读取值,可以这样写
to read the value as an ascii code, you can write
char a = 'a';
int ia = (int)a;
/* note that the int cast is not necessary -- int ia = a would suffice */
转换字符'0' ->0
, '1' ->1
等,可以写
to convert the character '0' -> 0
, '1' -> 1
, etc, you can write
char a = '4';
int ia = a - '0';
/* check here if ia is bounded by 0 and 9 */
说明:a - '0'
等价于 ((int)a) - ((int)'0')
,意思是每个字符减去ascii值其他.由于 0
在 ascii 表中直接出现在 1
之前(依此类推直到 9
),两者之间的差异给出了字符a
代表.
Explanation:a - '0'
is equivalent to ((int)a) - ((int)'0')
, which means the ascii values of the characters are subtracted from each other. Since 0
comes directly before 1
in the ascii table (and so on until 9
), the difference between the two gives the number that the character a
represents.