unsigned long strtoul(const char *s, char **ptr, int base);
unsigned long _strtoul_r(void *reent, const char *s, char **ptr, int base);
```### 描述
函数 strtoul 将字符串 *s 转换为无符号长整型。首先,它将字符串分解为三部分:前导空白字符(被忽略);由在 base 指定的基数中有意义的数字组成的主题字符串(例如,如果 base 的值为 8,则为 0 到 7);以及由一个或多个无法解析的字符组成的尾部部分,该部分始终包含终止空字符。然后,它尝试将主题字符串转换为无符号长整型,并返回结果。
如果 base 的值为零,则期望主题字符串看起来像一个普通的 C 整数常量(只是不允许有可选的正负号):一个可能的表示十六进制基数的 0x,以及一个数字。如果 base 在 2 到 36 之间,则主题的预期形式是一个数字序列(根据基数可能包含字母),表示以 base 指定的基数的整数。字母 a--z(或 A--Z)被用作值从 10 到 35 的数字。如果 base 为 16,则允许有前导 0x。