strtol.c

来自「linux系统下的音频通信」· C语言 代码 · 共 84 行

C
84
字号
/*  * strtol.c -- * *	Source code for the "strtol" library procedure. * * Copyright (c) 1988 The Regents of the University of California. * Copyright (c) 1994 Sun Microsystems, Inc. * * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * * SCCS: @(#) strtol.c 1.4 96/02/15 12:08:23 */#include <ctype.h>/* *---------------------------------------------------------------------- * * strtol -- * *	Convert an ASCII string into an integer. * * Results: *	The return value is the integer equivalent of string.  If endPtr *	is non-NULL, then *endPtr is filled in with the character *	after the last one that was part of the integer.  If string *	doesn't contain a valid integer value, then zero is returned *	and *endPtr is set to string. * * Side effects: *	None. * *---------------------------------------------------------------------- */long intstrtol(string, endPtr, base)    char *string;		/* String of ASCII digits, possibly				 * preceded by white space.  For bases				 * greater than 10, either lower- or				 * upper-case digits may be used.				 */    char **endPtr;		/* Where to store address of terminating				 * character, or NULL. */    int base;			/* Base for conversion.  Must be less				 * than 37.  If 0, then the base is chosen				 * from the leading characters of string:				 * "0x" means hex, "0" means octal, anything				 * else means decimal.				 */{    register char *p;    int result;    /*     * Skip any leading blanks.     */    p = string;    while (isspace(*p)) {	p += 1;    }    /*     * Check for a sign.     */    if (*p == '-') {	p += 1;	result = -(strtoul(p, endPtr, base));    } else {	if (*p == '+') {	    p += 1;	}	result = strtoul(p, endPtr, base);    }    if ((result == 0) && (endPtr != 0) && (*endPtr == p)) {	*endPtr = string;    }    return result;}

⌨️ 快捷键说明

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