Programmation C++ (débutant)/Les types de base

Un livre de Wikibooks.

Programmation C++ (débutant)
Programmation C++ (débutant)
Sommaire
Liens
Modifier ce modèle

[modifier] Le cours du chapitre 5 : les types de base

Sections

[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.