假设有一个字符串我想用C解析。 解析我想使用函数sscanf()
。从C中的字符串解析浮点值时出现问题
现在,在一个点上,在字符串中有一个浮点型数字,它可能会扩展到一个很大的值(十进制之前/之后),有时甚至更少。基本上这意味着数字的宽度是可变的。
例如,
的数目可以是15.5686,15.5686778887或156.867788
让我们这样的字符串
Str1 = "Hello15.5686World"
Str1 = "Hello15.5686778887World"
在运行期间任何上述串的可能必须被解析。
然而,数字的起点是固定的,但我们不知道它在哪里结束。那么,什么是确定相同的方法,以便“世界”(数字后的子字符串)可以被正确解析或读取。
您必须缩小可能的输入范围。 1)数字可以使用什么浮点格式?它只是小数,还是十六进制? 2)字符串的非数字部分是否可以包含数字? – EOF
如果我们可以知道数字的最大宽度,那么我们可以修复它的开始/结束点。但是,无论数字有多大或多少,每次需要解析字符串时,它总是会使用该空间量。 – Anand
@EOF:是的,非数字部分可能包含数字。 – Anand