Namespaces
Variants

std:: isspace

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

Vérifie si le caractère donné est un caractère d'espacement tel que classifié par les paramètres régionaux C actuellement installés. Dans les paramètres régionaux par défaut, les caractères d'espacement sont les suivants :

  • espace ( 0x20 , ' ' )
  • saut de page ( 0x0c , ' \f ' )
  • saut de ligne ( 0x0a , ' \n ' )
  • retour chariot ( 0x0d , ' \r ' )
  • tabulation horizontale ( 0x09 , ' \t ' )
  • tabulation verticale ( 0x0b , ' \v ' )

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 est un caractère d'espacement, zéro sinon.

Notes

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

Exemple

#include <cctype>
#include <climits>
#include <iomanip>
#include <iostream>
int main(void)
{
    std::cout << std::hex << std::setfill('0') << std::uppercase;
    for (int ch{}; ch <= UCHAR_MAX; ++ch)
        if (std::isspace(ch))
            std::cout << std::setw(2) << ch << ' ';
    std::cout << '\n';
}

Sortie :

09 0A 0B 0C 0D 20

Voir aussi

vérifie si un caractère est classé comme espace blanc par une locale
(modèle de fonction)
vérifie si un caractère large est un caractère d'espacement
(fonction)
Documentation C pour isspace
Seules les parties suivantes ont été traduites : - "tab" → "tabulation" Tous les autres éléments (balises HTML, contenu des balises ` `, formatage, et termes spécifiques au C++) ont été conservés intacts. **Note:** Le contenu fourni ne contient aucun texte à traduire en dehors des balises HTML et des éléments ` `. Tous les éléments visibles sont soit : - Des nombres et codes (48–57, \x30, \x39, \60, \71, 0123456789, 0, ≠0) - Des balises HTML et attributs - Du contenu dans des balises ` ` qui ne doit pas être traduit Par conséquent, la structure HTML reste identique sans modifications de traduction nécessaires. **Note:** Aucune traduction n'était nécessaire dans ce fragment HTML car : - Les nombres et codes hexadécimaux/octaux ne se traduisent pas - Les lettres majuscules GHIJKLMNOP/QRSTUVWXYZ sont des caractères ASCII littéraux - Les symboles ≠0 et 0 sont des valeurs booléennes en programmation - Tous les textes étaient contenus dans des balises qui doivent être préservées **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 tirets "–" entre les valeurs (qui sont des séparateurs) - Les symboles "≠0" (qui sont des notations mathématiques) Tous les autres éléments sont soit des balises HTML, soit du contenu dans des balises ` ` qui doivent être préservés selon vos 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