isascii()

Updated: April 19, 2023

Test a character to see if it's a 7-bit ASCII character

Synopsis:

#include <ctype.h>

int isascii( int c );

Arguments:

c
The character you want to test. This must be representable as an unsigned char or be EOF; the behavior for other values is undefined. Because this argument is interpreted as an int, to avoid sign extension on character values greater than 0x7F, you must cast the argument to the unsigned data type; otherwise, the function will behave unpredictably.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The isascii() function tests for an ASCII character (in the range 0 to 127).

Returns:

Nonzero if c is an ASCII character; otherwise, zero.

Examples:

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

char the_chars[] = { 'A', 0x80, 'Z' };

#define SIZE sizeof( the_chars ) / sizeof( char )

int main( void )
{
    int i;

    for( i = 0; i < SIZE; i++ ) {
        if( isascii( (unsigned)the_chars[i] ) ) {
            printf( "Char %c is an ASCII character\n",
                the_chars[i] );
        } else {
            printf( "Char %c is not an ASCII character\n",
                the_chars[i] );
        }
    }
    
    return EXIT_SUCCESS;
}

produces the output:

Char A is an ASCII character
Char   is not an ASCII character
Char Z is an ASCII character

Classification:

POSIX 1003.1 OB XSI. This function is marked as obsolescent, and may be removed from a future version of the standard.

Safety:  
Cancellation point No
Interrupt handler Yes
Signal handler Yes
Thread Yes