Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All
Expand Minimize

ispunct, iswpunct, _ispunct_l, _iswpunct_l

Determines whether an integer represents a punctuation character.

int ispunct(
   int c 
int iswpunct(
   wint_t c 
int _ispunct_l(
   int c,
   _locale_t locale
int _iswpunct_l(
   wint_t c,
   _locale_t locale


Integer to test.


The locale to use.

Each of these routines returns nonzero if c is a particular representation of a punctuation character. ispunct returns a nonzero value for any printable character that is not a space character or a character for which isalnum is nonzero. iswpunct returns a nonzero value for any printable wide character that is neither the space wide character nor a wide character for which iswalnum is nonzero. Each of these routines returns 0 if c does not satisfy the test condition.

The result of the test condition for the ispunct function depends on the LC_CTYPE category setting of the locale; see setlocale, _wsetlocale for more information. The versions of these functions that do not have the _l suffix use the current locale for any locale-dependent behavior; the versions that do have the _l suffix are identical except that they use the locale that's passed in instead. For more information, see Locale.

The behavior of ispunct and _ispunct_l is undefined if c is not EOF or in the range 0 through 0xFF, inclusive. When a debug CRT library is used and c is not one of these values, the functions raise an assertion.

Generic-Text Routine Mappings

TCHAR.H routine

_UNICODE & _MBCS not defined

_MBCS defined

_UNICODE defined

_ istpunct





Required header




<ctype.h> or <wchar.h>




<ctype.h> or <wchar.h>

For additional compatibility information, see Compatibility.

© 2015 Microsoft