gpt4 book ai didi

c - ANSI C : converting argv into int

转载 作者:太空宇宙 更新时间:2023-11-04 05:11:28 25 4
gpt4 key购买 nike

您好,我想将 ansi-c 中的 argv 转换为 int。我不确定一些事情...

 int main(int argc, char* argv[])

假设我的程序按如下方式运行。/a input1 input2。

假设在这种情况下我的 input1 = 12345 和 input2=67890

我不想使用 atoi。我想自己全部转换。例如,当我调用 argv[1] 时,它只等于“12345”还是可能是“12345”?即它的任何一侧都可以有空间吗?

atoi 和 sscanf 的问题在于,如果我的 input1="0"和 input1="abc"

然后 atoi 和 sscanf 都会返回 0,如果我错了请纠正我...谢谢!

最佳答案

C 标准库中的字符串到整数的转换由 strtol 函数(或 strto... 组中的其他函数)执行。忘记 atoisscanf - 这些函数不提供错误检测和/或溢出保护的方法。

您是否可以在参数周围接收空格取决于系统特定的传递前导和尾随空格的约定,当然,还取决于用户实际传递的内容。通常,如果用户愿意,不同的操作系统会提供一种传递这些空格的方法。因此,真正由您来决定您认为此类输入是正确的还是错误的。

strtol 本质上将允许(并忽略)前导和尾随空格。 atoisscanf 也是如此。

关于c - ANSI C : converting argv into int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2134305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com