为了账号安全,请及时绑定邮箱和手机立即绑定

为什么不使用Atoi()?

为什么不使用Atoi()?

C
泛舟湖上清波郎朗 2019-06-21 13:25:46
为什么不使用Atoi()?有人告诉我不应该用atoi(),我应该一直用strtol()相反。怎么了atoi()我不该用它?是strtol()真的是应该用的东西吗?(而事实是strtol()返回long,而不是int喜欢atoi()是吗?)
查看完整描述

3 回答

?
森栏

TA贡献1810条经验 获得超5个赞

从你自己的链接:

Atoi()函数包含在strtol()中,但是保留了它,因为它在现有代码中被广泛使用。如果不知道该数字在范围内,则应该使用strtol(),因为不需要执行任何错误检查。

atoi过时


查看完整回答
反对 回复 2019-06-21
?
慕仙森

TA贡献1827条经验 获得超7个赞

如果字符串很大且无法转换,则会导致未定义的行为,因为该字符串的值可能太大,而且可能不在范围内。在这种情况下(在下列情况下)号码不知道在范围内。strtol()应该用。


查看完整回答
反对 回复 2019-06-21
?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

带着atoi由于没有特殊的错误“返回”,所以无法确定传递的字符串是否真的是数字。它也只处理十进制值(基数10),所以不能处理任意基数。strtol..而且,它不能处理大于有符号整数的值(在大多数平台上为32位)。


查看完整回答
反对 回复 2019-06-21
  • 3 回答
  • 0 关注
  • 1847 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信