strtoul.c

来自「一个C语言写的快速贝叶斯垃圾邮件过滤工具」· C语言 代码 · 共 26 行

C
26
字号
/* strtoul.c - replacement strtoul *//* (C) 2004 by Matthias Andree. License: GNU GPL v2. */#include <errno.h>#include <limits.h>unsigned long strtoul(const char *str, char **endptr, int base){    unsigned long ret = 0;    if (base != 10) { errno = EINVAL; return 0ul; }    while (*str >= '0' && *str <= '9')    {	if (ret * 10 < ret) goto ovl;	ret *= 10;	if (ret + (*str - '0') < ret) goto ovl;	ret += (*str - '0');	str++;    }    if (endptr) *endptr = (char *)str;    return 0;ovl:    errno = ERANGE;    return ULONG_MAX;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?