对数值功能的字符串
备注
在 strtod 系列的每个函数以 NULL 结尾的字符串转换为数值。 可用的功能在下表中列出。
功能 |
说明 |
---|---|
strtod |
对于双精度浮点值的转换字符串 |
strtol |
对于长的整数的转换字符串 |
strtoul |
为无符号 long 整数的转换字符串 |
_strtoi64 |
对于 64 位 __int64 整数的转换字符串 |
_strtoui64 |
为无符号 64 位整数 __int64 的转换字符串 |
wcstod、 wcstol、 wcstoul和 _wcstoi64 分别为 strtod、 strtol、 strtoul和 _strtoi64的宽字符版本,即。 这些宽字符函数中的字符串参数是宽字符字符串;每个功能否则方法的行为与其单字节字符副本。
strtod 函数采用两个参数:第一个是输入字符串,并且,第二到结束字符的指针转换过程。 使用时,的数基在转换过程,strtol、 strtoul、 _strtoi64 和 _strtoui64 获取第三个参数。
输入字符串是可被解释为指定类型的一个数值字符的序列。 每个功能停止读取为数字的一部分,它无法识别的字符串在第一个字符。 这可能是终止 null 字符)。 为 strtol、 strtoul、 _strtoi64和 _strtoui64,此终止字符也可能是第一个数字字符大于或等于用户提供的数基。
如果对结束转换字符的用户提供的指针未设置为 NULL 在调用时,对停止扫描将存储在该处字符的指针。 如果转换不能执行 (未找到有效的数值或无效的基本指定了),字符串指针的值存储在该地址。
strtod 需要以下格式的字符串:
空白符号[] [] [digits] [**.**digits][{d | D | e |E}] [符号digits]
空白 可以包含空格或制表符,将忽略; 符号 加号 (+) 或减号 (–);并 digits 是一个或多个十进制数字。 如果数字不在基数字符出现之前,至少一个必须在基数字符后面。 十进制数字可由指数按照,包括一个表示字母 (d、 D、 e或 E) 和一个可选择符号整数。 如果指数部件和基数字符未出现,基数字符假定按照该字符串的最后一位数。 不适合此窗体停止扫描的第一个字符。
strtol、 strtoul、 _strtoi64和 _strtoui64 函数需要以下格式的字符串:
空白[] [{+ |–}] [0 [{ x |x }] []digits]
如果基参数在 2 和 36 之间,则将它作为该数字的基础。 如果该值为 0,初始字符对由结束转换指针用于确定基础。 如果第一个字符是 0,第二个字符不是 " x " 或 " X ",字符串被解释为一个八进制整数;否则,它将被解释为十进制数字。 如果第一个字符为 “0 ",第二个字符是 " x " 或 " X ",字符串被解释为十六进制整数。 如果第一个字符为 " 1 " 到 " 9 ",字符串被解释为十进制整数。 字母 " a " 到 “z (或 " A " 到 “Z) 赋值 10 到 35;与 基础 进行值小于只允许的字母。 strtoul 和 _strtoui64 允许加号 (+) 或减号 (–) 符号前缀;生成一个减号指示返回值对。
输出值受设置 LC_NUMERIC 类设置的影响区域设置;请参见 setlocale 有关更多信息。 这些功能的版本不 _l 后缀为该区域设置相关的行为使用当前区域设置;与 _l 后缀的版本相同,只不过它们使用传入的区域设置参数。
当这些函数返回的值将导致溢出或下溢时,或者,在转换不可能,特殊情况返回值如下所示:
功能 |
Condition |
返回的值 |
---|---|---|
strtod |
溢出 |
+/- HUGE_VAL |
strtod |
下溢或不转换 |
0 |
strtol |
+ 溢出 |
LONG_MAX |
strtol |
- 溢出 |
LONG_MIN |
strtol |
下溢或不转换 |
0 |
_strtoi64 |
+ 溢出 |
_I64_MAX |
_strtoi64 |
- 溢出 |
_I64_MIN |
_strtoi64 |
不转换 |
0 |
_strtoui64 |
溢出 |
_UI64_MAX |
_strtoui64 |
不转换 |
0 |
_I64_MAX, _I64_MIN和 _UI64_MAX 在 LIMITS.H. 定义。
wcstod、 wcstol、 wcstoul、 _wcstoi64和 _wcstoui64 分别为 strtod、 strtol、 strtoul、 _strtoi64和 _strtoui64的宽字符版本,;对于结束转换参数的指针这些宽字符函数中的每一个是宽字符字符串。 否则,这些宽字符函数中的每个方法的行为与其单字节字符副本。