http://www.cplusplus.com/reference/clibrary/cstdlib/atoi/
返回值
成功后,函数将转换后的整数作为int
值返回。
如果无法执行有效的转换,则返回零值。
如果正确的值超出可表示值的范围,则返回INT_MAX或INT_MIN。
所以我在atoi("poop")
和atoi("0")
和atoi("0000000")
之间有何区别
是的,如果我得到0结果,我可以循环并检查所有零,但是没有更好的方法吗?
注意:我使用ANSI C89
最佳答案
这就是atoi
有时被认为不安全的原因之一。请改用strtol
/ strtoul
。如果有,请使用 strtonum
。
函数atoi
比您想象的要危险的多。 The POSIX
standard说:
C99标准还说:
关于c - atoi-如何识别零和误差之间的差异?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8871711/