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 !
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 majusculeEnvoyé 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...Envoyé par micromaths
Sinon, il y a des liens vers des sites de références des fonctions C sur mon site...
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).Envoyé par gnto
Et si à la place de 31 on met:'A'-'a'?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,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.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.
Envoyé par man toupper
man toupper/tolower
man isupper
Partager