Programmation C++ (débutant)/Les types de base
Un livre de Wikibooks.
[modifier] Le cours du chapitre 5 : les types de base
[modifier] Les types int et double
Nous avons déjà étudié précédemment les type int et double pour stocker respectivement un entier et un réel.
[modifier] Le type char
Le type char est un type prédéfini du langage C++. Il permet de stocker un caractère.
Il est codé en général sur 8 bits.
On peut faire des tests sur le caractère : if(c>='A' && c<='Z') permet par exemple de tester si un caractère est une lettre majuscule.
On peut transférer un char dans un int. On récupère alors le code ASCII du caractère.
[modifier] Exemple 1 : utilisation du type char
#include <iostream> using namespace std; int main() { char a, b; a = 'Y'; cout << "Tapez un caractere : "; cin >> b; cout << "Le caractère a vaut : " << a <<endl; cout << "Le caractère b vaut : " << b <<endl; return 0; }
- Dans cet exemple,on commence par déclarer 2 variables de type char a et b.
- On peut affecter à la variable a le caractère 'Y' en utilisant l'affectation a='Y';. On notera que Y s'écrit entre cotes (et non entre des guillemets qui sont réservées aux chaînes de caractères).
- On saisit la valeur de b par un cin.
- On affiche les valeurs de a et b en utilisant cout.
- Exécution 1 de l’exemple 1
Tapez un caractere : Z
Le caractère a vaut Y
Le caractère b vaut Z
[modifier] Codage des caractères
Chaque caractère est codé en général sur 8 bits sous la forme d'un code ASCII. Le code ASCII est un système de représentation des caractères où chaque caractère est codé par un entier entre 0 et 127. On peut récupérer ce code en mettant un caractère dans un entier.
[modifier] Exemple 2 : le codage des caractères
#include <iostream> using namespace std; int main() { char c; int i; do{ cout<<"Saisir une lettre : "; cin>>c; i=c; cout <<"Le caractère ASCII de "<<c<<" est : "<<i<<endl; }while (c!='Q'); cout << "Pressez une touche pour continuer ..." << endl; cin.ignore(); cin.get(); return 0; }
- Explications
- On demande à l'utilisateur de saisir un caractère dans une variable a.
- On récupère le code ASCII de a en mettant a dans une variable entière x.
- On affiche ce code ASCII par un cout.
- Exécution 1
Saisir une lettre : H
Le caractère ASCII de H est : 72
- Exécution 2
Saisir une lettre :w
Le caractère ASCII de w est : 119
[modifier] Comparaison sur les char
Lorsqu'on effectue des comparaisons sur les char, on compare en fait les codes ascii.
On peut tester si un caractère c est une majuscule par le test (x>='A' && x<='Z').
On peut tester si un caractère c est une minuscule par le test (x>='a' && x<='z').
On peut tester si un caractère c est un chiffre par le test (x>='0' && x<='9').
[modifier] Exemple 3 : Comparaison sur les char
#include <iostream> using namespace std; int main() { char a; cout<<"Tapez un caractere : "; cin>>a; if (a>='A' && a<='Z') cout<<"Vous avez tapé une majuscule."<<endl; else if (a>='a' && a<='z') cout<<"Vous avez tapé une minuscule."<<endl; else if (a>='0' && a<='9') cout<<"Vous avez tapé un chiffre."<<endl; else cout<<"Vous n'avez tapé ni une majuscule, ni une minuscule, ni un chiffre."<<endl; return 0; }
- Explications
- On demande à l'utilisateur de saisir un caractère dans une variable a.
- On teste ensuite si l'utilisateur a tapé une majuscule, une minuscule, un chiffre ou une autre type de caractère.
- On affiche ce code ASCII par un cout.
- Exécution 1
Tapez un caractère : H
Vous avez tapé une majuscule
- Exécution 2
Tapez un caractère : w
Vous avez tapé une minuscule
- Exécution 3
Tapez un caractère : 8
Vous avez tapé un chiffre
- Exécution 4
Tapez un caractère : [
Vous n'avez tapé ni une majuscule, ni une minuscule, ni un chiffre
[modifier] Transformation char-int
On peut effectuer des opérations de base sur les char : addition et soustraction.
Ces opérations sont en fait réalisée sur les codes ascii.
Si c est un chiffre c-'0' est la valeur de l'entier correspondant à ce chiffre.
[modifier] Exemple 4 : transformation char-int
#include <iostream> using namespace std; int main() { char a; int x; cout <<"Tapez un caractere : "; cin>>a; if (a>='0' && a<='9') { cout <<"Vous avez tapé un chiffre." <<endl; x = a-'0'; cout <<"Ce chiffre est : "<< x <<endl; } else cout <<"Vous n'avez pas tapé un chiffre." <<endl; return 0; }
- Explications
- Dans cet exemple, on demande à l'utilisateur de taper un caractère.
- Si ce caractère est un chiffre, on récupère dans l'entier x la valeur de ce chiffre pas son code ASCII).
- On affiche ensuite la valeur de x.
- Exécution 1
Tapez un caractère : 7
Vous avez tapé un chiffre.
Ce chiffre est 7.
- Exécution 2
Tapez un caractère : 4
Vous avez tapé un chiffre.
Ce chiffre est 4.
- Exécution 3
Tapez un caractère : Y
Vous n'avez pas tapé un chiffre.
[modifier] Transformation majuscule-minuscule
Pour transformer un caractère c qui est une majuscule en la minuscule correspondante, il suffit de lui ajouter ('a'-'A').
Pour transformer un caractère c qui est une minuscule en la majuscule correspondante, il suffit de lui ajouter ('A'-'a').
[modifier] Exemple 5 : transformation majuscule-minuscule
#include<iostream> using namespace std; int main() { char a, b; cout<<"Tapez un caractere : "; cin>>a; if (a>='A' && a<='Z') { cout<<"Vous avez tapé une majuscule."<<endl; b = a + ('a'-'A'); cout<<"La minuscule correspondante est "<< b <<endl; } else if (a>='a' && a<='z') { cout<<"Vous avez tapé une minuscule."<<endl; b = a + ('A'-'a'); cout<<"La majuscule correspondante est "<< b <<endl; } else cout<<"Vous n'avez pas tapé une lettre."<<endl; return 0; }
- Explications
- On demande à l'utilisateur de taper un caractère dans un variable a.
- Si l'utilisateur a tapé une majuscule, on affiche la minuscule correspondante.
- Si l'utilisateur a tapé une minuscule, on affiche la majuscule correspondante.
- Exécution 1
Tapez un caractère : H
Vous avez tapé une majuscule.
La minuscule correspondante est h.
- Exécution 2
Tapez un caractère : w
Vous avez tapé une minuscule.
La majuscule correspondante est W.
- Exécution 3
Tapez un caractère : 9
Vous n'avez pas tapé une lettre.
