在 C 和 C++ 中将 char 转换为 int

在 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.