strtoul, _strtoul_l, wcstoul, _wcstoul_l

为无符号长整数值的转换字符串。

unsigned long strtoul(
   const char *nptr,
   char **endptr,
   int base 
);
unsigned long _strtoul_l(
   const char *nptr,
   char **endptr,
   int base,
   _locale_t locale
);
unsigned long wcstoul(
   const wchar_t *nptr,
   wchar_t **endptr,
   int base 
);
unsigned long _wcstoul_l(
   const wchar_t *nptr,
   wchar_t **endptr,
   int base,
   _locale_t locale
);

参数

  • nptr
    转换的 null 终止的字符串。

  • endptr
    若要停止扫描字符的指针。

  • base
    使用的数基。

  • locale
    使用的区域设置。

返回值

strtoul 返回转换的值,甚至没有或 ULONG_MAX 在溢出。 转换,则不能执行,strtoul 返回 0。 wcstoul 类似将值返回给 strtoul。 对于两个函数,因此,如果溢出或下溢时发生, errno 设置为 ERANGE 。

请参见 _doserrno、 errno、 _sys_errlist 和 _sys_nerr 有关这方面的更多信息以及其他,返回代码。

备注

这些功能中的每个转换输入字符串 nptr 为 unsigned long。

strtoul 停止读取为数字的一部分,它无法识别的字符串 nptr 在第一个字符。 这可能是终止 null 字符),也可能是第一个数字字符大于或等于 base。 LC_NUMERIC 类别以区域设置决定基数字符的标识 nptr的;有关更多信息,请参见 setlocale。 strtoul 和wcstoul 使用当前区域设置; _strtoul_l 和_wcstoul_l 相同,只不过它们使用的区域设置。 有关更多信息,请参见 区域设置

如果 endptr 不是 NULL,对停止扫描的字符的指针在位置存储指向由 endptr。 如果转换不能执行 (未找到有效的数值或无效的基本指定了), nptr 的值在位置存储指向由 endptr。

wcstoul 是 strtoul的宽字符版本;其 nptr 参数是宽字符字符串。 否则这些函数具有相同的行为。

一般文本例程映射

TCHAR.H 实例

未定义的 _UNICODE _MBCS

定义的 _MBCS

定义的 _UNICODE

_tcstoul

strtoul

strtoul

wcstoul

_tcstoul_l

strtoul_l

_strtoul_l

_wcstoul_l

strtoul 希望 nptr 指向以下格式的字符串:

[whitespace] [{+ |–}] [0 [{ x |X }]] [digits]

whitespace 可以包含空格和制表符,将忽略; digits 是一个或多个十进制数字。 不适合此窗体停止扫描的第一个字符。 如果 base 在 2 和 36 之间,则将它作为该数字的基础。 如果 base 为 0,字符串的初始字符指向由 nptr 用于确定基础。 如果第一个字符是 0,第二个字符不是 " x " 或 " X ",字符串被解释为一个八进制整数;否则,它将被解释为十进制数字。 如果第一个字符为 “0 ",第二个字符是 " x " 或 " X ",字符串被解释为十六进制整数。 如果第一个字符为 " 1 " 到 " 9 ",字符串被解释为十进制整数。 字母 " a " 到 “z (或 " A " 到 “Z) 赋值 10 到 35;比 base 进行值小于只允许的字母。 strtoul 允许加号 (+) 或减号 (–) 符号前缀;生成一个减号指示返回值对。

要求

实例

必需的头

strtoul

stdlib.h

wcstoul

stdlib.h 或 wchar.h

_strtoul_l

stdlib.h

_wcstoul_l

stdlib.h 或 wchar.h

有关其他的兼容性信息,请参见中介绍的 兼容性

示例

strtod参见示例。

.NET Framework 等效项

系统:: 转换:: ToUInt64

请参见

参考

数据转换

区域设置

localeconv

setlocale, _wsetlocale

对数值功能的字符串

strtod, _strtod_l, wcstod, _wcstod_l

strtol, wcstol, _strtol_l, _wcstol_l

atof, _atof_l, _wtof, _wtof_l