Bonjour à tous
j'ai un soucis concernant un test sur des caractères : tester si le caractère est un \
Code:if (d[0]!='\"')
Voila , je voudrais savoir qu'elle est la différence entre ces 2 expressionsCode:if (d[0]!='\')
Merci
Version imprimable
Bonjour à tous
j'ai un soucis concernant un test sur des caractères : tester si le caractère est un \
Code:if (d[0]!='\"')
Voila , je voudrais savoir qu'elle est la différence entre ces 2 expressionsCode:if (d[0]!='\')
Merci
Ben pour tester si c'est un \ tu dois l'écrire deux fois :
Code:if (d[0]!='\\')
la différence c'est que les double guillements "a" indiquent une chaîne...
Donc "\a" siginfie une chaine qui contient le caractère \ et le caractère a, et que avec cette chaine tu pourras faire des strcpy ou strcmp par exemple.
Les guillemets simples 'a' indiquent un caractère.. Donc un ELEMENT d'une chaine.
Donc dans ton cas pour tester le CARACTERE il faut faire :
Code:
1
2 if (d[0]!='\')
nan disturbed a raison, le caractère \ est un joker '\\' correspond au caractère \ et '\0' au cractère 0 par exemple
oops yes mais le principe des " " ou des ' ' est correct :P
au caractère de VALEUR 0, à savoir la fin de chaine !Citation:
Envoyé par hiko-seijuro
un char a une valeur numérique
exemple : 'A' vaut 65 en décimal (cf table ascii)
donc si on fait
ouCode:
1
2 char c = 'A';
ou encoreCode:
1
2 char c = 65;
c'est la même chose.Code:
1
2 char c = '\65';
De plus, certains caractères, une fois echappés ont une autre signification.
Si on veut mettre un " dans une chaine de caractères il faut le préceder d'un \ sinon ça termine la chaine.
La liste des caractères en question est sur le net.
FAUX : \65 est le caractère n° 53 (0x35), c'est-à-dire le chiffre '5'.Citation:
Envoyé par Faiche
oh ok, je pensais que si on faisait \065 c'était en octal, et \65 en décimal.Citation:
Envoyé par Médinoc
Pas du C.Citation:
Envoyé par Faiche
Dans '\0' est 0 en octal. Les valeurs en octal commencent par 0.
65 en octal vaut 0101, soit '\0101'
On peut aussi l'écrire en hexadécimal, soit 0x41, ou encore '\x41'
Ben non. La séquence \6 n'est pas définie par le langage C. Comportement indéterminé.Citation:
Envoyé par Médinoc