【发布时间】:2009-10-28 23:10:45
【问题描述】:
当使用函数atoi(或strtol或类似的函数)时,如何判断整数转换是否失败,或者被转换的C字符串是否为0?
对于我正在做的事情,0 是一个可接受的值,并且正在转换的 C 字符串可能包含任意数量的 0s。它也可能有前导空格。
【问题讨论】:
-
为什么你认为 strtol() 已被弃用?这是 C 标准中一个非常好的、健全的功能。如果您关心成功/失败,那么您显然不应该使用 atoi();它无法告诉你它是成功返回 0 还是失败返回 0。
-
atoi 没有被弃用,它从一开始就没有出现在标准中。这是一个来自 K&R 的示例,被视为有用的扩展。
-
很好。我不知道 atoi 的历史或详细信息,并删除了任何对弃用的引用。
-
@stonemetal:不正确。
atoi和整个ato...公司都是标准功能。它们也出现在 C99 中。 -
接受的答案已过时;请参阅emlai's answer。