可变长度字符串到int数组?
我有一个形式为的字符串 “1 2 8 4 9 0”等。我知道它将遵循整数,空格,整数的格式......
但是,我不能保证长度。我知道最大长度,如果有帮助的话。 我想使用 sscanf,但它需要有限数量的整数。
有什么想法可以将“1 2 3 ”转换为一个数组,其中
A[0] = 1
A[1] = 2
A[2] = 3
谢谢!
I have a string which is in the form
"1 2 8 4 9 0 " etc. I know it will follow the format of integer, space, integer...
However, I can't guarentee the length. I know the maximum length, if that helps.
I thought to use sscanf, but it needs a finite number of integers.
Any ideas how I can turn "1 2 3 " into an array where
A[0] = 1
A[1] = 2
A[2] = 3
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
发布评论
评论(4)
~没有更多了~
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
strtol
指示字符串中失败的位置.对于像
"1 2 3 ..."
这样的字符串,它将读取1
并随后失败;如果您随后将该故障点 (" 2 3 ..."
) 传递给strtol
,它将读取2
并随后失败,.. ., ...查看实际操作 - 与上面的代码片段不同,在 ideone 中用 1 :/ 初始化
k
并不能很好地处理以空格结尾的输入。strtol
indicates where in the string it failed.For a string like
"1 2 3 ..."
it will read the1
and fail right afterwards; if you then pass that failure point (" 2 3 ..."
) tostrtol
it will read2
and fail right afterwards, ..., ...See it in action -- unlike the snippet above, the one at ideone initializes
k
with 1 :/ and doesn't deal well with inputs that end in whitespace.