Vous êtes sur la page 1sur 10

Initiation à la programmation en C++

PARTIE 3

BTS SNIR
Savoir 4.6. Programmation orientée objet (support : C++) :

 Du C au C++ : références, entrées/sorties (iostream, fstream), polymorphisme, etc. « 3: maitrise d’outils »


 Définition de classes (encapsulation) et modèle canonique (dit de Coplien) « 3 »
 Instanciation d’objets (new, delete, etc.) « 4: maîtrise méthodologique »
 Surcharges d’opérateurs (injection, etc.) « 2:expression »
 Mécanisme d’héritage « 4 »
 Mécanismes d’agrégation et de composition « 4 »
 Classes abstraites, virtualité « 3 »

Savoir 4.7. Langages de programmation

 C++ « 3 »
 Utilisation d’un langage objet (Java, C#, C++, etc.) « 3 »

Prérequis pour le jeu « Le pendu »


Les chaînes de caractères

Créer un projet « PrerequisPendu »

Si on désire afficher le message Il m’a dit « bonjour » ! , il faut précéder chaque guillemet par \.
Depuis la norme C++ de 2011, on peut afficher une chaîne brute à l’aide du caractère R et entourant à
l’intérieur des guillemets notre message par des parenthèses :

Si on veut afficher une parenthèse, il faudra alors utiliser une séquence d’échappement personnalisée,
c’est-à-dire définir la suite de caractères qui va mettre fin à notre chaîne.
Je peux, par exemple définir ma séquence d’échappement personnalisée : 0_0

Message affiché à l’écran :

On revient à la syntaxe classique pour afficher une chaîne brute à l’aide du caractère R et entourant à
l’intérieur des guillemets notre message par des parenthèses.
On peut afficher un message exactement de la même façon qu’on l’a écrit dans le code source :

Message affiché à l’écran :


Pour déclarer une chaîne de caractères on peut utiliser la syntaxe :
auto chaine{« bonjour »} ;

Message affiché à l’écran :

Pour afficher le premier caractère de bonjour c’est-à-dire b, on utilise chaine[0] :

Message affiché à l’écran :

Le type de notre variable chaine est const char* :


Notre variable est donc une constante, on ne peut donc pas modifier notre chaîne de caractères :
Si vous modifiez le programme en indiquant que chaine[0]=’B’ ;
Vous allez avoir un message d’erreur.

Si on souhaite modifier notre chaîne de caractères, on va avoir besoin d’un autre type de variable :
Le type string.
Il faut l’inclure en début de programme : #include <string>
Il faut ensuite indiquer auto chaine = std ::string{« bonjour »} ;

Message affiché à l’écran :

On constate que le premier caractère de chaine a été modifié.


On va pouvoir avec le type string ajouter des chaînes.

Si je déclare deux chaînes différentes, on va pouvoir concaténer les chaînes c’est-à-dire les écrire les unes à
la suite des autres.

Pour pouvoir afficher les accents, on ajoute :


- Le header <windows.h>
- SetConsoleOutputCP(65001) ;
- Edit - File encoding – UTF-8

Message affiché à l’écran :


On va pouvoir aussi avec le type string comparer deux chaînes.

Ce code signifie qu’on va afficher le contenu de chaine si chaine2 est inférieure à chaine c’est-à-dire
si chaine2 est située avant chaine dans l’ordre alphabétique :

1er caractère de chaine2 : espace code ASCII : 32


1er caractère de chaine : b code ASCII : 98

32 < 98 on a donc chaine2 < chaine, on affiche bonjour

On peut obtenir la longueur de notre chaîne de caractères :

Pour notre exemple chaine correspond à bonjour, il va donc afficher 7.


On peut utiliser une autre syntaxe pour indiquer que notre chaîne de caractères est de type string.
Il faut ajouter le caractère s après le deuxième guillemet :

auto chaine{« bonjour »s} ; // Permet de déclarer une chaîne de caractères de type string
chaine [0] = ‘B’ ; // On modifie le premier caractère de chaine par B
cout << chaine << endl ; // On affiche Bonjour avec un B majuscule car on a modifier le premier caractère.

Message affiché à l’écran :

On peut créer une chaîne de caractères en lui donnant le nombre de caractères suivi d’un caractère à
répéter.
On utilise cela la syntaxe suivante :
auto chaine2 = string(5, ‘a’) ;
Pour cette exemple, notre va construire une chaîne de caractères de 5 a :

On constate qu’on utilise des parenthèses :


auto chaine2 = string(5, ‘a’) ;

- Les accolades initialisent une variable


- Les parenthèses construisent une variable

Message affiché à l’écran :


On va créer une fonction qui prend en paramètre une chaîne de caractères.

On crée une fonction qui va afficher notre chaîne de caractères :

Cette solution n’est pas parfaite car si on veut simplement afficher le message bonjour :

On a un message d’erreur.
Pour résoudre le problème, il existe un autre type : string view.
Il est par contre disponible à partir de la version C++17.

Le programme affiche bien : bonjour


On ne pourra pas avec string_view modifier notre chaîne de caractères.
Vous devez réaliser le jeu du pendu :

Vous disposez de deux fichiers qui se trouvent dans le dossier Jeu du Pendu :
- motsPossibles.h
- pendu.txt
Ci-dessous la structure de votre projet Jeu du Pendu – 1 :

Début du programme main.cpp :

Début du programme jeu.cpp :

Extrait d’une ligne du programme jeu.h :

const auto NOMBRE_ETAPES_PENDU{11};

void afficherLettresTrouvees(std::string_view lettres);


bool verifierLettre(std::string_view mot, char lettre, std::string& lettresTrouvees);
char passerLettreEnMajuscule(char lettre);

Il manque :
- afficherPendu
- demanderLettre
- jouerPartie
Ci-dessous l’exécution du programme :

Vous aimerez peut-être aussi