为什么不使用Atoi()?

为什么不使用Atoi()?

有人告诉我不应该用atoi(),我应该一直用strtol()相反。怎么了atoi()我不该用它?是strtol()真的是应该用的东西吗?(而事实是strtol()返回long,而不是int喜欢atoi()是吗?)



泛舟湖上清波郎朗
浏览 1848回答 3
3回答

森栏

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

慕仙森

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

呼啦一阵风

带着atoi由于没有特殊的错误“返回”,所以无法确定传递的字符串是否真的是数字。它也只处理十进制值(基数10),所以不能处理任意基数。strtol..而且,它不能处理大于有符号整数的值(在大多数平台上为32位)。
打开App,查看更多内容
随时随地看视频慕课网APP