Fonction isprint

Entête à inclure

#include <ctype.h>  // <cctype> en C++

Fonction isprint

int isprint( int character );

Cette fonction permet de tester si un caractère s'affiche (is printable) ou non. Parmis ces caractères on retrouve l'ensemble des caractères ayant une représentation graphique (ceux pour qui la fonction isgraph retourne vrai) ainsi que le caractère d'espacement (de code 0x20). Autrement dit, il s'agit de l'ensemble des caractères ASCII, exceptés les caractères de contrôles (qui eux peuvent être vérifiés via la fonction iscntrl).

Paramètre

  • character : le caractère à tester. Il est sur-typé par int car la fonction peut aussi accepter la valeur -1 (EOF - End Of File) correspondant à la fin d'un flux.

Valeur de retour

La valeur de retour doit être interprétée en tant que valeur booléenne. Une valeur positive non nulle signifira qu'il s'agit bien d'un caractère pouvant s'afficher visuellement. La valeur 0 indiquera qu'il ne s'agit pas d'un caractère pouvant s'afficher.

Exemple de code

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

int main() {

    char * originalString = "Hello\nWorld Final\tWord";
    size_t length = strlen( originalString );
    size_t counter = 0;

    for( size_t i=0; i<length; i++ ) { 
        if ( isprint( originalString[i] ) ) {
            printf( "%c", originalString[i] );
            counter ++;
        }
    }

    printf( "\n" );
    assert( counter == 20 );

    return EXIT_SUCCESS;
}

Attention : cet exemple utilise des éléments de syntaxe définis dans le standard C99. L'emploie de l'option -std=c99 sur la ligne de compilation de votre exemple est donc requis.

Voici un petit exemple d'exécution de ce programme :

$> gcc -o Sample -Wall -std=c99 Sample.c
$> ./Sample
HelloWorld FinalWord
$>

Sujets connexes

isalnum
isalpha
isblank
iscntrl
isdigit
isgraph
islower
ispunct
isspace
isupper
isxdigit