www.pudn.com > CÓïÑÔµÄС±àÒëÆ÷.zip > CTYPE.H


/* 
 * Character classification macros for MICRO-C 
 * 
 * These macros classify the passed character based on a table 
 * lookup. The accepted range of character values which may be 
 * tested is (0 to 127, and EOF). 
 * 
 * NOTE: Since these are "parameterized" macros, they MUST be 
 *       processed by the external pre-processor (MCP). If you 
 *       are using the internal processor do not include this 
 *       file, and library functions will be used instead. 
 * 
 * Copyright 1990 Dave Dunfield 
 * All rights reserved. 
 */ 
 
/* Type bits in _chartype_ */ 
#define IS_CTL	0x01		/* Control code */ 
#define IS_SPC	0x02		/* Space character */ 
#define IS_DIG	0x04		/* Numeric digit */ 
#define IS_UPP	0x08		/* Upper-case alphabetic */ 
#define IS_LOW	0x10		/* Lower-case alphabetic */ 
#define IS_HEX	0x20		/* Valid hex-alphabetic character */ 
#define IS_PUN	0x40		/* Non-graphic printable character */ 
 
	extern char _chartype_[]; 
 
/* Character classification macros */ 
#define	iscntrl(c)	(_chartype_[(c)+1] & IS_CTL) 
#define	isspace(c)	(_chartype_[(c)+1] & IS_SPC) 
#define	isdigit(c)	(_chartype_[(c)+1] & IS_DIG) 
#define	isupper(c)	(_chartype_[(c)+1] & IS_UPP) 
#define	islower(c)	(_chartype_[(c)+1] & IS_LOW) 
#define	ispunct(c)	(_chartype_[(c)+1] & IS_PUN) 
#define	isalpha(c)	(_chartype_[(c)+1] & (IS_UPP | IS_LOW)) 
#define	isxdigit(c)	(_chartype_[(c)+1] & (IS_DIG | IS_HEX)) 
#define	isalnum(c)	(_chartype_[(c)+1] & (IS_DIG | IS_UPP | IS_LOW)) 
#define	isgraph(c)	(_chartype_[(c)+1] & (IS_PUN | IS_DIG | IS_UPP | IS_LOW))