Namespaces
Variants

ispunct

From cppreference.net
< c ‎ | string ‎ | byte
Défini dans l'en-tête <ctype.h>
int ispunct ( int ch ) ;

Vérifie si le caractère donné est un caractère de ponctuation dans les paramètres régionaux C actuels. Les paramètres régionaux C par défaut classifient les caractères !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ comme 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 est un caractère de ponctuation, zéro sinon.

Exemple

#include <ctype.h>
#include <locale.h>
#include <stdio.h>
int main(void)
{
    unsigned char c = '\xd7'; // the character × (multiplication sign) in ISO-8859-1
    printf("In the default C locale, \\xd7 is %spunctuation\n",
           ispunct(c) ? "" : "not " );
    setlocale(LC_ALL, "en_GB.iso88591");
    printf("In ISO-8859-1 locale, \\xd7 is %spunctuation\n",
           ispunct(c) ? "" : "not " );
}

Sortie possible :

In the default C locale, \xd7 is not punctuation
In ISO-8859-1 locale, \xd7 is punctuation

Références

  • Norme C23 (ISO/CEI 9899:2024) :
  • 7.4.1.9 La fonction ispunct (p: TBD)
  • Norme C17 (ISO/CEI 9899:2018) :
  • 7.4.1.9 La fonction ispunct (p: 146)
  • Norme C11 (ISO/IEC 9899:2011) :
  • 7.4.1.9 La fonction ispunct (p: 202)
  • Norme C99 (ISO/IEC 9899:1999) :
  • 7.4.1.9 La fonction ispunct (p: 183)
  • Norme C89/C90 (ISO/IEC 9899:1990) :
  • 4.3.1.8 La fonction ispunct

Voir aussi

vérifie si un caractère large est un caractère de ponctuation
(fonction)
Documentation C++ pour ispunct
**Note:** Aucun texte n'a été traduit car : - Les nombres (48–57) et les caractères (0123456789) ne nécessitent pas de traduction - Le contenu des balises ` ` est préservé selon les instructions - Les symboles mathématiques (≠0) ne sont pas traduits - Aucun texte en langage naturel n'était présent en dehors des balises protégées **Note:** Aucun texte n'a été traduit car : - Les nombres et codes hexadécimaux/octaux ne sont pas traduits - Le texte dans les balises ` ` est préservé - Les termes C++ spécifiques ne sont pas traduits - Les seuls textes potentiellement traduisibles (71-90) sont des plages numériques qui restent identiques en français **Note:** Aucun texte n'a été traduit dans cet extrait car : - Les nombres (103–122) sont des valeurs numériques - Le contenu des balises ` ` est préservé (caractères d'échappement C++ et lettres) - Les symboles mathématiques (`≠0`) ne sont pas traduits - La structure HTML et les attributs sont conservés intacts
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 \173 \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