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
    要使用的区域设置。

返回值

如果任何或 ULONG_MAX 在溢出时,则 strtoul 返回转换后的值。 如果不能执行转换,则 strtoul 返回 0。 wcstoul 返回值类似于 strtoul。 对于两个函数,如果出现溢出或下溢,请将 errno 设置为 ERANGE。

有关这个,其他和返回代码的更多信息,请参见 _doserrno, errno, _sys_errlist, and _sys_nerr

备注

每个函数将输入字符串nptr 转换为 unsigned long。

strtoul 在发现第一个不能将其识别为数字的字符时,将停止读入字符串 nptr。 这可能是终止空字符,也可能是大于或等于 base 的第一个数字字符。 当前区域设置的 LC_NUMERIC 类别设置确定 nptr 中基数字符的识别;有关详细信息,请参阅 x99tb11d(v=vs.120).md。 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”或“Y”,该字符串则被翻译成八进制整数。 如果首个字符为“0”,而第二个字符为“X”或“Y”,该字符串则被解读为十六进制整数。 如果第一个字符为“1”到“9”,该字符串被解读为十进制整数。 字母“a”到“z”(或“A”到“Z”)赋值 10 到 35;只允许使用赋值小于 base 的字母。 在基项范围外的第一个字符将终止扫描。 例如,如果 base 为 0 且扫描的第一个字符也为“0”,则会假定为一个八进制整数且字符“8”或“9”将会终止扫描。 strtoul 允许加号 (+) 或减号 (–) 符号前缀;前导减号表示返回值为负。

要求

例程

必需的标头

strtoul

<stdlib.h>

wcstoul

<stdlib.h> 或 <wchar.h>

_strtoul_l

<stdlib.h>

_wcstoul_l

<stdlib.h> 或 <wchar.h>

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

示例

请参见将字符串转换成浮点数示例。

.NET Framework 等效项

System::Convert::ToUInt64

请参见

参考

数据转换

区域设置

localeconv

setlocale、_wsetlocale

字符串到数值函数

strtod、_strtod_l、wcstod、_wcstod_l

strtol、wcstol、_strtol_l、_wcstol_l

atof、_atof_l、_wtof、_wtof_l