ISPUNCT(3)

NAME
ispunct, ispunct_l - punctuation single-byte character test

SYNOPSIS
#include <ctype.h>
int
ispunct(int c);
int
ispunct_l(int c, locale_t locale);

DESCRIPTION
The ispunct() and ispunct_l() test for any punctuation characters.

In the C locale, the complete list of punctuation characters is:

    !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

These are all characters for which isgraph(3) is true but isalnum(3) is not. OpenBSD always uses the C locale for these functions, ignoring the global locale, the thread-specific locale, and the locale argument.

RETURN VALUES
These functions return zero if the character tests false or non-zero if the character tests true.

ENVIRONMENT
On systems supporting non-ASCII single-byte character encodings, results of these functions may differ, and the results of ispunct() may depend on the LC_CTYPE locale(1).

SEE ALSO
isalnum(3), isalpha(3), isascii(3), isblank(3), iscntrl(3), isdigit(3), isgraph(3), islower(3), isprint(3), isspace(3), isupper(3), iswpunct(3), isxdigit(3), stdio(3), toascii(3), tolower(3), toupper(3), ascii(7)

STANDARDS
The ispunct() function conforms to ansiC, and ispunct_l() to p1003.1-2008.

HISTORY
The ispunct() function first appeared in AT&T UNIX, and ispunct_l() has been available since OpenBSD 6.2.

CAVEATS
The argument c must be EOF or representable as an unsigned char; otherwise, the result is undefined.