### 3.9 `ispunct`—punctuation character predicate

Synopsis

    #include <ctype.h>
    int ispunct(int c);

Description
`ispunct` is a macro which classifies ASCII integer values by table lookup. It is a predicate returning non-zero for printable punctuation characters, and 0 for other characters. It is defined only if c is representable as an unsigned char or if c is EOF.

You can use a compiled subroutine instead of the macro definition by undefining the macro using ‘`#undef ispunct`’.

Returns
`ispunct` returns non-zero if c is a printable punctuation character (`isgraph(c) && !isalnum(c)`).

Portability
`ispunct` is ANSI C.

No supporting OS subroutines are required.