如何将char c = '5'
这样的单个字符转换为int
,就像我可以使用转换为c
的{{1}}进行算术运算一样。上面我尝试制作一个简单的程序,你从键盘上读取int
之类的字符串,并显示这两个数字123 + 443之间的计算值等于566。
'123+443'
答案 0 :(得分:3)
atoi
不起作用,因为它需要一个以null结尾的字符串。当您将&str[i]
传递给它时,函数会继续解析字符串的其余部分。只有字符串中的最后一位数字才会给出您期望的答案。
要将代表数字的字符转换为相应的数字,请从中减去'0'
:
char c = '5';
int n = c - '0'; // n == 5
这有效的原因是表示数字的ASCII(甚至EBCDIC)代码占用连续的数字范围,其开头的数字为'0'
,'9'
最后。