如何转换单个字符编号,如' 5'整数

时间:2014-11-01 21:10:44

标签: c

如何将char c = '5'这样的单个字符转换为int,就像我可以使用转换为c的{​​{1}}进行算术运算一样。上面我尝试制作一个简单的程序,你从键盘上读取int之类的字符串,并显示这两个数字123 + 443之间的计算值等于566。

'123+443'

1 个答案:

答案 0 :(得分:3)

atoi不起作用,因为它需要一个以null结尾的字符串。当您将&str[i]传递给它时,函数会继续解析字符串的其余部分。只有字符串中的最后一位数字才会给出您期望的答案。

要将代表数字的字符转换为相应的数字,请从中减去'0'

char c = '5';
int n = c - '0'; // n == 5

这有效的原因是表示数字的ASCII(甚至EBCDIC)代码占用连续的数字范围,其开头的数字为'0''9'最后。