我可以在strtol中使用自定义的“拆分字符”吗?

时间:2016-03-13 13:04:06

标签: c++ c parsing input strtol

我一直在阅读有关strtol here的一些文档 在一个例子中,当一个新数字开始时,一个人使用空间来显示这个功能。我是C ++的新手,我不知道很多指针以及它们是如何工作的,所以我决定你问问你。我可以使用点而不是空格来分割数字吗?例如,如果我有这个:char text[] = "3.16.88"并且我想将它转换为三个不同的变量,比如这个a = 3, b = 16, c = 88,我还可以使用strtol还是我应该尝试别的? 感谢

1 个答案:

答案 0 :(得分:4)

这正是文档所说的。

在小数的情况下,只会解析数字0..9,扫描将在下一个非数字处停止。

前导空格将自动被丢弃。如果你想提前扫描下一个数字,你需要添加一个简单的循环来跳过非数字,从end_ptr开始,strtol可以在其中一个参数中返回(使用它;不​​要不要将它设置为NULL