iscntrl


function
<cctype>
int iscntrl ( int c );

Check if character is a control character

Checks if parameter c is a control character.

For the standard ASCII character set, control characters are those between ASCII codes 0x00 (NUL) and 0x1f (US), plus 0x7f (DEL), although specific compiler implementations for certain platforms may define additional control characters in the extended character set (above 0x7f).

The opposite of iscntrl is isprint, which is true for all characters that are not control characters.

For a detailed chart on what the different ctype functions return for each character of the standard ANSII character set, see the reference for the <cctype> header.

In C++, a locale-specific template version of this function (iscntrl) exists in header <locale>.

Parameters

c
Character to be checked, casted to an int, or EOF.


Return Value

A value different from zero (i.e., true) if indeed c is a control character. Zero (i.e., false) otherwise.

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/* iscntrl example */
#include <stdio.h>
#include <ctype.h>
int main ()
{
  int i=0;
  char str[]="first line \n second line \n";
  while (!iscntrl(str[i]))
  {
    putchar (str[i]);
    i++;
  }
  return 0;
}


This code prints a string character by character until a control character that breaks the while-loop is encountered. In this case, only the first line would be printed, since the line ends with '\n', which is a control character (ASCII code 0x0a).

See also