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 caractaire ASCII de H est : 72
- Exécution 2
Saisir une lettre :w
Le caractaire 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.


