Conversion en Minuscule/Majuscule
1) Conversion en minuscule
Ecrire un programme C qui demande à l'utilisateur un caractère, et teste s'il s'agit d'une lettre majuscule, si oui il renvoie cette lettre en minuscule, sinon il lui affiche un message l’informant que la lettre saisie n’est pas majuscule.
Entrer une lettre Majuscule: R
--> Conversion en Minuscule: r
Entrer une lettre Majuscule: j
Le caratere 'j' n'est pas une lettre Majuscule
2) Conversion en minuscule ou majuscule
Modifier le programme pour convertir une en majuscule s'il est minuscule et vice versa. Le programme doit afficher un message d'erreur si le caractère saisi n'est pas une lettre.
Entrer une lettre: r
--> Conversion en Majuscule: R
Entrer une lettre: U
--> Conversion en Minuscule: u
Entrer une lettre: @
Le caratere '@' n'est pas une lettre
Question 1
//Programme : Conversion en Minuscule //Auteur : IDMANSOUR //Copyright : Exelib.net #include <stdio.h> int main(){ char c, m; printf("Entrer une lettre Majuscule: "); scanf("%c", &c); if(c >= 'A' && c <= 'Z'){ // ou if(c >= 65 && c <= 90) m = c + 'a' - 'A'; // ou m = c + 32; printf("\n--> Conversion en Minuscule: %c \n", m); } else{ printf("\nLe caratere '%c' n'est pas une lettre Majuscule\n", c); } }
- Le langage C permet l'utilisation des opérateurs arithmétiques et de comparaisons sur les caractères.
- Les nombres 65 et 90 sont respectivement les codes ASCII des lettres A et B.
- 32 est la différence entre les codes ASCII de a et A.
Question 2
//Programme : Conversion en Majuscule/Minuscule //Auteur : IDMANSOUR //Copyright : Exelib.net #include <stdio.h> int main(){ char c, m; printf("Entrer une lettre: "); scanf("%c", &c); if(c >= 'A' && c <= 'Z'){ m = c + 'a' - 'A'; printf("\n--> Conversion en Minuscule: %c \n", m); } else if(c >= 'a' && c <= 'z'){ m = c - ('a' - 'A'); printf("\n--> Conversion en Majuscule: %c \n", m); } else{ printf("\nLe caratere '%c' n'est pas une lettre\n", c); } }
Une deuxième méthode consiste à utiliser les fonctions (toupper, tolower...) définies dans la bibliothèque standard ctype.h
//Programme : Conversion en Majuscule/Minuscule avec les fonctions du ctype.h //Auteur : IDMANSOUR //Copyright : Exelib.net #include <stdio.h> #include <ctype.h> int main(){ char c, m; printf("Entrer une lettre:"); scanf("%c", &c); if(isupper(c)){ m = tolower(c); printf("\n--> Conversion en Minuscule: %c \n", m); } else if(islower(c)){ m = toupper(c); printf("\n--> Conversion en Majuscule: %c \n", m); } else{ printf("\nLe caratere '%c' n'est pas une lettre\n", c); } }
Les fonctions suivantes ont une valeur de retour et des arguments du type int qui peuvent être représentée comme char:
- int isupper(int C) : retourne une valeur différente de zéro, si C est une majuscule
- int islower(int C) : retourne une valeur différente de zéro, si C est une minuscule
- int tolower(int C) : retourne C converti en minuscule si C est une majuscule, sinon C
- int toupper(int C) : retourne C converti en majuscule si C est une minuscule, sinon C