#include <ctype.h> // <cctype> en C++
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
).
int
car la fonction peut aussi accepter la valeur -1 (EOF - End Of File) correspondant à la fin d'un
flux.
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.
#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 $>
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :