Namespaces
Variants

std:: isprint

From cppreference.net
Défini dans l'en-tête <cctype>
int isprint ( int ch ) ;

Vérifie si ch est un caractère imprimable tel que classifié par les paramètres régionaux C actuellement installés. Dans les paramètres régionaux par défaut "C" , les caractères suivants sont imprimables :

  • chiffres ( 0123456789 )
  • lettres majuscules ( ABCDEFGHIJKLMNOPQRSTUVWXYZ )
  • lettres minuscules ( abcdefghijklmnopqrstuvwxyz )
  • caractères de ponctuation ( !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ )
  • espace ( )

Le comportement n'est pas défini si la valeur de ch n'est pas représentable en tant que unsigned char et n'est pas égale à EOF .

Table des matières

Paramètres

ch - caractère à classifier

Valeur de retour

Valeur non nulle si le caractère peut être imprimé, zéro sinon.

Notes

Comme toutes les autres fonctions de <cctype> , le comportement de std::isprint est indéfini si la valeur de l'argument n'est ni représentable comme unsigned char ni égale à EOF . Pour utiliser ces fonctions de manière sûre avec des char simples (ou des signed char ), l'argument doit d'abord être converti en unsigned char :

bool my_isprint(char ch)
{
    return std::isprint(static_cast<unsigned char>(ch));
}

De même, ils ne doivent pas être utilisés directement avec des algorithmes standard lorsque le type de valeur de l'itérateur est char ou signed char . À la place, convertissez d'abord la valeur en unsigned char :

int count_prints(const std::string& s)
{
    return std::count_if(s.begin(), s.end(),
                      // static_cast<int(*)(int)>(std::isprint)         // incorrect
                      // [](int c){ return std::isprint(c); }           // incorrect
                      // [](char c){ return std::isprint(c); }          // incorrect
                         [](unsigned char c){ return std::isprint(c); } // correct
                        );
}

Exemple

#include <cctype>
#include <clocale>
#include <iostream>
int main()
{
    unsigned char c = '\xa0'; // the non-breaking space in ISO-8859-1
    std::cout << "isprint(\'\\xa0\', default C locale) returned "
              << std::boolalpha << (bool)std::isprint(c) << '\n';
    std::setlocale(LC_ALL, "en_GB.iso88591");
    std::cout << "isprint(\'\\xa0\', ISO-8859-1 locale) returned "
              << std::boolalpha << (bool)std::isprint(c) << '\n';
}

Sortie possible :

isprint('\xa0', default C locale) returned false
isprint('\xa0', ISO-8859-1 locale) returned true

Voir aussi

vérifie si un caractère est classé comme imprimable par une locale
(modèle de fonction)
vérifie si un caractère large est un caractère d'impression
(fonction)
Documentation C pour isprint
**Note:** Le texte fourni ne contient aucun contenu textuel à traduire en dehors des balises ` `, qui doivent être préservées selon les instructions. Tous les éléments visibles sont soit des nombres, soit des codes hexadécimaux/octaux, soit des symboles mathématiques (`≠`), qui ne nécessitent pas de traduction. **Note:** Aucune traduction n'a été effectuée car : - Le texte "71–90" est une plage numérique qui ne nécessite pas de traduction - Tous les autres contenus textuels se trouvent dans des balises ` ` qui doivent être préservées selon les instructions - Les symboles "–" et "≠0" sont des notations techniques qui ne doivent pas être traduites **Note:** Le contenu HTML fourni ne contient aucun texte à traduire en français. Tous les éléments sont soit : - Des balises HTML (conservées telles quelles) - Du contenu dans des balises ` ` (non traduit selon les instructions) - Des valeurs numériques et symboles (123–126, ≠0, 0) - Le tiret "–" (caractère de ponctuation) Par conséquent, la sortie reste identique à l'entrée.
Valeurs ASCII Caractères

iscntrl
iswcntrl

isprint
iswprint

isspace
iswspace

isblank
iswblank

isgraph
iswgraph

ispunct
iswpunct

isalnum
iswalnum

isalpha
iswalpha

isupper
iswupper

islower
iswlower

isdigit
iswdigit

isxdigit
iswxdigit

décimal hexadécimal octal
0–8 \x0 \x8 \0 \10 codes de contrôle ( NUL , etc.) ≠0 0 0 0 0 0 0 0 0 0 0 0
9 \x9 \11 tabulation ( \t ) ≠0 0 ≠0 ≠0 0 0 0 0 0 0 0 0
10–13 \xA \xD \12 \15 espaces blancs ( \n , \v , \f , \r ) ≠0 0 ≠0 0 0 0 0 0 0 0 0 0
14–31 \xE \x1F \16 \37 codes de contrôle ≠0 0 0 0 0 0 0 0 0 0 0 0
32 \x20 \40 espace 0 ≠0 ≠0 ≠0 0 0 0 0 0 0 0 0
33–47 \x21 \x2F \41 \57 !"#$%&'()*+,-./ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
48–57 \x30 \x39 \60 \71 0123456789 0 ≠0 0 0 ≠0 0 ≠0 0 0 0 ≠0 ≠0
58–64 \x3A \x40 \72 \100 :;<=>?@ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
65–70 \x41 \x46 \101 \106 ABCDEF 0 ≠0 0 0 ≠0 0 ≠0 ≠0 ≠0 0 0 ≠0
71–90 \x47 \x5A \107 \132 GHIJKLMNOP
QRSTUVWXYZ
0 ≠0 0 0 ≠0 0 ≠0 ≠0 ≠0 0 0 0
91–96 \x5B \x60 \133 \140 [\]^_` 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
97–102 \x61 \x66 \141 \146 abcdef 0 ≠0 0 0 ≠0 0 ≠0 ≠0 0 ≠0 0 ≠0
103–122 \x67 \x7A \147 \172 ghijklmnop
qrstuvwxyz
0 ≠0 0 0 ≠0 0 ≠0 ≠0 0 ≠0 0 0
123–126 \x7B \x7E \172 \176 {|}~ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
127 \x7F \177 caractère d'effacement ( DEL ) ≠0 0 0 0 0 0 0 0 0 0 0 0