我想弄清楚如何转换一个字母数字,比如说
char num = "1";
与整数相同的数字
char num = "1"; would be converted to int numc = "1";
并且我能想到的唯一方法是手动执行一堆if语句,这看起来有点过分,所以我只是想知道是否有人知道更简单的方法来做到这一点?谢谢!
答案 0 :(得分:5)
在C中,字符实际上只是代表其字符值的数字,所以:
char ch = '1';
int num = ch - '0';
printf("ch=%c num=%d\n", ch, num);
这利用了这样一个事实:在所有常见字符集中,字符值'0'
到'9'
被顺序分配。
另请注意,char
值由单引号括起,而多字符字符串则由 double 引号括起。
答案 1 :(得分:1)
快速解决问题的方法是从数字的值中减去“0”,如下所示:
char num = '2';
int i = num - '0';