We recommend using Visual Studio 2017

iscntrl, iswcntrl, _iscntrl_l, _iswcntrl_l


The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

The latest version of this topic can be found at iscntrl, iswcntrl, _iscntrl_l, _iswcntrl_l.

Determines whether an integer represents a control character.

int iscntrl(   
   int c   
int iswcntrl(   
   wint_t c   
int _iscntrl_l(   
   int c,  
   _locale_t locale  
int _iswcntrl_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 control character. iscntrl returns a nonzero value if c is a control character (0x00 – 0x1F or 0x7F). iswcntrl returns a nonzero value if c is a control wide character. Each of these routines returns 0 if c does not satisfy the test condition.

The versions of these functions that have the _l suffix use the locale parameter that's passed in instead of the current locale. For more information, see Locale.

The behavior of iscntrl and _iscntrl_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
RoutineRequired header
iswcntrl<ctype.h> or <wchar.h>
_iswcntrl_l<ctype.h> or <wchar.h>

For additional compatibility information, see Compatibility.


Character Classification
is, isw Routines