如何将表示数字的char字符转换为int中的相同数字?

我想弄清楚如何转换一个字母数字

char num = "1"; 

与整数相同的数字

 char num = "1"; would be converted to int numc = "1"; 

而我能想到的唯一方法是手动执行一堆if语句,这看起来有点过分,所以我只是想知道是否有人知道更简单的方法吗? 谢谢!

在C中,字符实际上只是表示其字符值的数字,因此:

 char ch = '1'; int num = ch - '0'; printf("ch=%c num=%d\n", ch, num); 

这利用了以下事实:在所有公共字符集中,顺序地分配字符值'0''9'

另请注意, char值由引号括起,而多字符字符串由引号括起。

快速解决问题的方法是从数字的值中减去“0”,如下所示:

 char num = '2'; int i = num - '0';