Bonjour !
Si quelqu'un connait le role des fonctions suivantes en "C" ça serait très sympa de me donner des pistes là-dessus :
isupper(char caractère) - tolower(char caractère)
Merci d'avance !
Version imprimable
Bonjour !
Si quelqu'un connait le role des fonctions suivantes en "C" ça serait très sympa de me donner des pistes là-dessus :
isupper(char caractère) - tolower(char caractère)
Merci d'avance !
isupper : Dire si c'est une majusculeCitation:
Envoyé par micromaths
Voir la page man : http://man.developpez.com/man3/isupper.3.php
tolower : mettre en minuscule?
Voir la page man : http://man.developpez.com/man3/tolower.3.php
Jc
Qu'en pense ton livre de C ? K&R 2 page 164...Citation:
Envoyé par micromaths
Sinon, il y a des liens vers des sites de références des fonctions C sur mon site...
:arrow: man ascii
en ascii tu ajoute + ou - 31 en décimal a la valeur ascii de la lettre
Très Grand Merci pour toutes vos réponses !
Je vous suis tellement reconaissant ;)
Les fonctions isupper(), tolower() et assimilees sont justement la pour ne pas avoir a se preoccuper de ce genre de detail hideux (et permettent de rester portable sur une plateforme n'utilisant pas l'ASCII pour coder les caracteres).Citation:
Envoyé par gnto
Et si à la place de 31 on met:'A'-'a'?Citation:
Envoyé par DaZumba
Autrement dit, tous les charset garantissent t'il la contiguité des codes des majuscules d'une part et ceux des minuscules d'autres part?
Non,Citation:
Envoyé par seriousme
http://home.arcor.de/wzwz.de/wiki/ebcdic/cc_en.htm
et c'est justement pour ça qu'il y a des fonctions pour cacher ces détails scabreux. La contiguité n'est garantie que pour le caractères représentant les chiffres de 0 à 9.
Merci pour l'exemple.
Y a t'il une raison particulière à cela?
Je ne suis pas sûr de comprendre la question. L'origine d'EBCDIC est dans les codes utilisés pour les cartes perforées qui au départ utilisaient quelque chose de proche de la base 10.Citation:
Envoyé par seriousme
Quelques URL:
http://www.quadibloc.com/comp/cardint.htm
http://homepages.cwi.nl/~dik/english/codes/80col.html
http://www.cs.uiowa.edu/~jones/cards/history.html
Trois petites remarques:
- ce qu'on passe à tolower/toupper, c'est un int qui doit contenir un char converti en unsigned... si on a des char signés, les passer directement à ces fonctions risque d'être catastrophique;
- 'a'-'A' vaut 32, pas 31
- si cette relation est vraie pour ISO-8851-1 (du moins pour les caractères qui ont leurs deux formes présentes), elle ne l'est pas pour ISO-8859-15 ou pour CP1252 (alias WinLatin1) sans parler d'unicode.
:arrow: man toupper/tolowerCitation:
Envoyé par man toupper
:arrow: man isupper