ansi c:将argv转换为int

0 c

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

 int main(int argc, char* argv[])
Run Code Online (Sandbox Code Playgroud)

我们假设我的程序运行如下./a input1 input2.

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

我不想使用atoi.我想把它全部转换成我自己的.例如,当我调用argv [1]它只等于"12345"或者它可能是"12345"?也就是说它的任何一侧都有空间吗?

atoi和sscanf的问题是,如果我的input1 ="0"且input1 ="abc"

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

AnT*_*AnT 6

C标准库中的字符串到整数转换由strtol函数(或来自strto...组的其他函数)执行.忘掉atoisscanf-这些功能提供错误检测和/或溢出保护手段.

是否可以在参数周围接收空格取决于传递前导和尾随空格的系统特定约定,当然还取决于用户实际传递的内容.通常,如果用户想要这样做,不同的OS提供了传递这些空间的方法.因此,您可以自行决定是否认为此类输入正确或错误.

strtol将基本上允许(并忽略)前导和尾随空格.同样适用于atoisscanf.