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

时间:2012-05-16 23:00:16

标签: c

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

char num = "1";

与整数相同的数字

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

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

2 个答案:

答案 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';