Namespaces
Variants

std:: isgraph

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

Vérifie si le caractère donné est graphique (a une représentation graphique) tel que classifié par les paramètres régionaux C actuellement installés. Dans les paramètres régionaux C par défaut, les caractères suivants sont graphiques :

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

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 possède une représentation graphique, zéro sinon.

Notes

Comme toutes les autres fonctions de <cctype> , le comportement de std::isgraph 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_isgraph(char ch)
{
    return std::isgraph(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_graphs(const std::string& s)
{
    return std::count_if(s.begin(), s.end(),
                      // static_cast<int(*)(int)>(std::isgraph)         // incorrect
                      // [](int c){ return std::isgraph(c); }           // incorrect
                      // [](char c){ return std::isgraph(c); }          // incorrect
                         [](unsigned char c){ return std::isgraph(c); } // correct
                        );
}

Exemple

#include <cctype>
#include <clocale>
#include <iostream>
int main()
{
    unsigned char c = '\xb6'; // the character ¶ in ISO-8859-1
    std::cout << "isgraph(\'\\xb6\', default C locale) returned "
              << std::boolalpha << (std::isgraph(c) != 0) << '\n';
    std::setlocale(LC_ALL, "en_GB.iso88591");
    std::cout << "isgraph(\'\\xb6\', ISO-8859-1 locale) returned "
              << std::boolalpha << (std::isgraph(c) != 0) << '\n';
}

Sortie possible :

isgraph('\xb6', default C locale) returned false
isgraph('\xb6', ISO-8859-1 locale) returned true

Voir aussi

vérifie si un caractère est classé comme graphique par une locale
(modèle de fonction)
vérifie si un caractère large est un caractère graphique
(fonction)
Documentation C pour isgraph
**Note:** Le contenu fourni ne contient aucun texte traduisible en dehors des balises ` `. Tous les éléments sont soit des balises HTML, soit du contenu technique C++ (valeurs hexadécimales, décimales, caractères) qui ne doivent pas être traduits selon les instructions. **Note:** Aucun texte n'a été traduit car : - Les nombres et codes hexadécimaux/octaux (71–90, \x47, \x5A, \107, \132) ne sont pas traduisibles - Le texte dans les balises (GHIJKLMNOP, QRSTUVWXYZ, 0, ≠0) est préservé - Les termes C++ spécifiques et valeurs numériques ne sont pas traduits - Seuls les textes en dehors des balises spécifiées seraient normalement traduits, mais il n'y en a pas dans cet extrait **Note:** Aucun texte n'a été traduit car : - Les nombres et codes C++ sont conservés tels quels - Le texte dans les balises ` ` est préservé - Les symboles mathématiques (`≠`) ne sont pas traduits - Seuls les textes en dehors des balises spécifiées auraient été traduits, mais il n'y en avait pas dans cet extrait **Note:** Le contenu HTML fourni ne contient aucun texte traduisible en dehors des balises ` `. Les seuls éléments textuels sont : - Les plages numériques "123–126" (qui ne nécessitent pas de traduction) - Les caractères "–" (qui sont des séparateurs) - Les symboles "≠0" (notation mathématique standard) Tous les autres éléments sont soit des codes C++, soit des valeurs numériques, soit contenus dans des balises ` ` - donc non traduits conformément aux instructions.
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