Quel est le symbole pour les espaces en C?
Je suis à essayer de comprendre comment faire pour vérifier si un caractère est égale à espace blanc en C. je sais que les onglets sont '\t'
et retours à la ligne sont '\n'
, mais je veux être en mesure de vérifier pour un espace normal (à partir de la barre d'espace) à l'intérieur d'un if
déclaration.
Quelqu'un sait ce qu'est le caractère pour cette?
char a = ' ';
espace est le caractère- La peine de lire ceci
- Il ressemble à tout le monde, c'est d'oublier que
'a'
a typeint
en C. - Je n'avais aucune idée de ce que C et C++ en désaccord sur ce!
- Mais il n'affectera pas les réponses.
- Elle n'affecte pas l'utilisation correcte de
isspace()
,isblank()
, etc. Ces fonctions ne sont pas définies pourchar
, mais pourint
valeurs dans leunsigned char
gamme etEOF
. Le passage d'unchar
qui est signée par rapport à uneint
peut avoir des résultats différents selon la façon dont leint
valeur a été attribuée. - et de penser, je l'ai googlé et est venu ici.
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas de symbole particulier pour les espaces. Il est en fait un ensemble de certains personnages qui sont habituellement:
Utilisation
isspace
de la bibliothèque standard de la fonction dectype.h
si vous voulez vérifier pour l'un de ces espaces vides.Pour seulement un espace, utilisez
' '
.isspace
serait de retour positive pour'\t'
, qui l'OP ne veut pas.Le caractère de la représentation de l'Espace est tout simplement
' '
.Mais si vous êtes vraiment à la recherche de tous les espaces, alors C est une fonction (en fait, c'est souvent une macro) pour qui:
Vous pouvez lire sur
isspace
iciSi vous voulez prendre tous les caractères non-imprimables, la fonction à utiliser est
isprint
de la même bibliothèque. Il traite de tous les caractères ci-dessous 0x20 (le code ASCII d'un espace) et au-dessus de 0x7E (0x7f est le code de la DEL, et tout au-dessus, qui est une extension).Dans le code brut équivalent à:
char c; ... if (isspace(c))
UB lorsquec < 0
. Pourrait utiliserif (isspace((unsigned char) c))
La valeur ASCII de
Space
est de 32. De sorte que vous pouvez comparer votre char à la valeur octale de 32, qui est de 40 ou sa valeur hexadécimale qui est de 20.if(c == '\40')
{ ... }
ou
if(c == '\x20')
{ ... }
Tout nombre après la
\
est supposé être octal, si le caractère juste après\
n'est pasx
, auquel cas il est considéré comme l'un hexadécimal.'\40'
,'\x20'
,32
,' '
sont tous absolument la même dans un basé sur le code ASCII C mise en œuvre. Le même type (int
). De la même valeur. La même représentation interne. Le même (le cas échéant) de rembourrage. Le même (le cas échéant) piège des représentations. De tous les 4, seul le dernier est garanti pour représenter un espace sur chaque ordinateur avec un C de mise en œuvre, si c'est de l'ASCII ou EBCDIC ou KLINGON base.Pas de séquence d'échappement spéciale est nécessaire: vous pouvez simplement taper l'espace directement:
En ASCII, l'espace est le code 32, de sorte que vous pourrait spécifier l'espace par
'\x20'
ou même32
, mais vous ne devriez vraiment pas faire ça.De côté: le mot "espace" est un fourre-tout pour l'espace, tabulation, saut de ligne, et tout et tout. Lorsque vous faites référence spécifiquement à l'ordinaire de l'espace, vous ne devriez pas utiliser le terme.
faire usage de isspace fonction .
exemple de code:
source : tutorialpoint
Pour vérifier un symbole d'espace, vous pouvez utiliser l'approche suivante
Pour vérifier un espace et/ou un symbole de tabulation (standard vierge de caractères), vous pouvez utiliser l'approche suivante
Pour vérifier un espace blanc, vous pouvez utiliser l'approche suivante