Conversion des majuscules en minuscules

Discutez d'informatique ici !
MacErmite
Membre Relatif
Messages: 408
Enregistré le: 12 Mai 2006, 12:00

Conversion des majuscules en minuscules

par MacErmite » 28 Nov 2010, 10:50

Bonjour,

Pouvez-vous m'aider à comprendre comment fonctionne ces quelques lignes de langage C :

Code: Tout sélectionner
char c ; //definition de la variable
/*saisie du caractere a analyser*/
printf("Entrer une lettre : ");
scanf("%c", &c);
/*transformation des majuscules en minuscules*/
if (c>='A' && c='A' && c<='Z'){
c+='a'-'A';}

Merci



Doraki
Habitué(e)
Messages: 5021
Enregistré le: 20 Aoû 2008, 11:07

par Doraki » 28 Nov 2010, 12:08

les caractères c'est aussi des entiers.
Et il se trouve que les lettres sont rangées dans l'ordre alphabétique :
'b' = 'a'+1, 'c' = 'a'+2, ..., 'z' = 'a'+25
'B' = 'A'+1, ...., 'Z' = 'A'+25.

Donc si ton caractère c'est une lettre majuscule, 'A'+k avec 0<=k<=25,
bah ('A'+k)+('a'-'A') = 'a'+('A'-'A')+k = 'a'+k

MacErmite
Membre Relatif
Messages: 408
Enregistré le: 12 Mai 2006, 12:00

par MacErmite » 28 Nov 2010, 12:59

Donc 'a' occupe une position 0 et 'z' la position 25 ? je ne vois pas ce que représente 'a'-'A' ?

Doraki
Habitué(e)
Messages: 5021
Enregistré le: 20 Aoû 2008, 11:07

par Doraki » 28 Nov 2010, 13:30

non 'a' c'est genre 97 et 'A' c'est 65.

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 28 Nov 2010, 13:59

salut,

pour compléter Doraki, en fait, le char c'est un octet.
Quand tu déclare char lettre='a'
ton 'a' est encodé sous la forme d'un octet (au pif : 0101 1111)
De fait, lorsque tu écris 'a'+'b', tu vas réaliser 0101 1111+la représentation binaire de 'b'

quant à 'a'-'A', tu déduis, que c'est l'écart entre la valeur de 'a' et celle de 'A'.
Typiquement, si 'a' est encodée en binaire, tel que 'a' vaut 97 en décimal, et 'A' 65 en décimal, ben...
'a'-'A' correspond à réaliser l'opération 97-65
la vie est une fête :)

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 3 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite