Differentiate printable and control character in C ?

Given a character we need to find if it printable or not. We also need to find if it is control character or not. A character is known as printable character if it occupies printing space.
For the standard ASCII character set (used by the “C” locale), control characters are those between ASCII codes 0x00 (NUL) and 0x1f (US), plus 0x7f (DEL).


Input : a
Output :a is printable character
        a is not control character
Input :\r
Output : is not printable character
         is control character

To find the difference between a printable character and a control character we can use some predefined functions, which are declared in the “ctype.h” header file.

The isprint() function checks whether a character is a printable character or not. isprint() function takes single argument in the form of an integer and returns a value of type int. We can pass a char type argument internally they acts as a int by specifying ASCII value.

The iscntrl() function is used to checks whether a character is a control character or not. iscntrl() function also take a single argument and return an integer.

// C program to illustrate isprint() and iscntrl() functions.
#include <stdio.h>
#include <ctype.h>
int main(void)
    char ch = 'a';
    if (isprint(ch)) {
        printf("%c is printable character\n", ch);
    } else {
        printf("%c is not printable character\n", ch);

    if (iscntrl(ch)) {
        printf("%c is control character\n", ch);
    } else {
        printf("%c is not control character", ch);
    return (0);


a is printable character
a is not control character

This article is contributed by Bishal Kumar Dubey. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.

Recommended Posts:

1 Average Difficulty : 1/5.0
Based on 2 vote(s)