c中“atoi”和“strtol”之间的用法差异

Sai*_*tti 6 c

我已经使用atoi一年了,最近几天我遇到一个问题,该表达式:

atoi("20")给出一个值0作为输出。

当我用谷歌搜索这个问题时,我发现它已被弃用,strtol应该改用。

我发现有趣的一点是atoi内部使用strtol。那么,当我将其更改为 时,问题如何解决strtol

Hit*_*iri 7

页面的解释man

atoi()函数将 nptr 指向的字符串的初始部分转换为 int。其行为与以下相同:

strtol(nptr, NULL, 10);

除了 atoi() 不检测错误之外。atol() 和 atoll() 函数的行为与 atoi() 相同,只不过它们将字符串的初始部分转换为其返回类型 long 或 long long。

有关更多信息,您可以在本主题atoi - strtol中查看两个函数的区别