Character Classification and Case Mapping

A number of functions for classifying and changing the case of characters with type char are defined in the header file ctype.h . These functions, whose names begin with is... or to..., accept a one-character argument whose value is between 0 and 255, or EOF.

The is... functions, listed in Table 1-39, test whether the character is a member of a specific category of characters. They return “true,” i.e., a non-zero value, if the character is in the given category. If not, the return value is 0, or “false.”

Table 1-39. Functions for character classification

Category

Function

Letter

int isalpha( int c );

Lower-case letter

int islower( int c );

Upper-case letter

int isupper( int c );

Decimal digit

int isdigit( int c );

Hexadecimal digit

int isxdigit( int c );

Letter or decimal digit

int isalnum( int c );

Printable character

int isprint( int c );

Printable character other than space ' '

int isgraph( int c );

Whitespace character

int isspace( int c );

Punctuation mark

int ispunct( int c );

Control character

int iscntrl( int c );

Space or horizontal tabulator

int isblank( int c );(*)

The following example reads a character and then tests to see whether it is a digit:

int c = getchar();     // Read a character
if ( isdigit( c ) ) ...// Is it a decimal digit?

The to... functions are used to convert characters from upper- to lower-case and vice versa, as shown in Table 1-40.

Table 1-40. Case mapping functions ...

Get C Pocket Reference now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.