« Exercices en langage C++/Les tableaux de char » : différence entre les versions
Contenu supprimé Contenu ajouté
m →EXERCICE 7 : Ortho. |
Correction typographiques, mise en forme de certains exercices |
||
Ligne 1 :
<noinclude>{{Exercices en langage C++}}</noinclude>
== Les tableaux de
=== Exercice 1 ===
Écrire une fonction qui a en paramètres une chaîne de caractères (paramètre en entrée) et un entier e (paramètre en sortie). Cette fonction renvoie un booléen. La fonction renvoie true si la chaîne de caractères est un entier écrit sous la forme d'une suite de chiffres qui ne commence pas par 0, elle renvoie false sinon. Si la chaîne est correcte, la fonction renvoie dans e la valeur de cet entier.
{{Boîte déroulante|titre=Solution|contenu =
Cet exercice a pour but de vérifier les points techniques suivants
* La manipulation de chaînes de caractères
*
*
Voici le fichier source :
<source lang=cpp>
#include<iostream>
Ligne 42 ⟶ 44 :
}}
===
{{Boîte déroulante|titre=Solution|contenu =
Cet exercice a pour but de vérifier les points techniques suivants
* La manipulation de chaînes de caractères
*
*
Voici le fichier source :
<source lang=cpp>
#include <iostream>
void
int compteur = 0;
// Le caractère de la chaîne n’est pas le marqueur terminal
while(chaine[compteur] != '\0') {
// Le caractères est une minuscule
if(chaine[compteur] >= 'a' && chaine[compteur] <= 'z') {
chaine[compteur] = chaine[compteur] + ('A'-'a');
}
compteur++; // Pour accéder au caractère suivant
}
}
int main() {
char
std::cout << "Tapez une chaîne de caractères à transposer en majuscules : ";
std::cin >> chaine;
std::cout << chaine;
minusculesVersMajuscules(chaine);
std::cout << "La même chaîne en majuscules est : " << chaine << std::endl;
return EXIT_SUCCESS;
}
</source>
}}
===
{{Boîte déroulante|titre=Solution|contenu =
<source lang=cpp>
Ligne 128 ⟶ 140 :
}}
===
{{Boîte déroulante|titre=Solution|contenu =
Cet exercice a pour but de vérifier les points techniques suivants
* La manipulation de chaînes de caractères
*
Voici le fichier source :
<source lang=cpp>
#include<iostream>
Ligne 176 ⟶ 189 :
}}
===
{{Boîte déroulante|titre=Solution|contenu =
Cet exercice a pour but de vérifier les points techniques suivants
* La manipulation de chaînes de caractères
*
Voici le fichier source :
<source lang=cpp>
#include<iostream>
Ligne 213 ⟶ 227 :
}}
===
Exemple, on tape : '''je pense donc je suis'''<br/>
Le programme affiche :<br/>
Ligne 223 ⟶ 237 :
mot 5 : suis<br/>
{{Boîte déroulante|titre=Solution|contenu =
Cet exercice a pour but de vérifier les points techniques suivants
* La manipulation de chaînes de caractères
*
Voici le fichier source :
<source lang=cpp>
#include<iostream>
Ligne 274 ⟶ 289 :
}}
===
{{Boîte déroulante|titre=Solution|contenu =
Cet exercice a pour but de vérifier les points techniques suivants
* La manipulation de chaînes de caractères
* validation d'une chaîne.
Voici le fichier source :
<source lang=cpp>
#include <iostream>
#include <cstring>
int main() {
char chaine[50];
int compteurCroissant = 0;
// On part du principe qu’il s’agit d’un palindrome et on va démontrer le contraire
bool laChaineEstUnPalindrome = true;
std::cout << "Tapez une chaîne de caractères : "; std::cin >> chaine;
int compteurDecroissant = strlen(chaine) - 1; // Suppression du \0 terminal
while (laChaineEstUnPalindrome && compteurCroissant < compteurDecroissant) {
if(chaine[compteurCroissant] != chaine[compteurDecroissant]) {
laChaineEstUnPalindrome = false;
} else {
compteurCroissant++;
compteurDecroissant--;
}
}
if (laChaineEstUnPalindrome) {
} else {
std::cout << "La chaîne de caractères n’est pas un palindrome." << std::endl;
}
return EXIT_SUCCESS;
}
</source>
}}
===
{{Boîte déroulante|titre=Solution|contenu =
Cet exercice a pour but de vérifier les points techniques suivants
* La manipulation de chaînes de caractères
*
Voici le fichier source :
<source lang=cpp>
#include <iostream>
int main() {
char chaine[50];
int poidsDesLettres[52];
std::cout << "Tapez une chaîne de caractères : "; std::cin >> chaine;
// Initialisation des valeurs du tableau à zéro
for(int index = 0; index < 52; index++) {
poidsDesLettres[index] = 0;
}
int index = 0;
while (chaine[index] != '\0') {
if (chaine[index] >= 'A' && chaine[index] <= 'Z') {
poidsDesLettres[chaine[index] - 'A']++;
} else if (chaine[index] >= 'a' && chaine[index] <= 'z') {
poidsDesLettres[chaine[index] - 'a' + 26]++;
}
index++;
}
/* Affichage du nombre d’occurrences de chaque lettre. On parcours seulement la moitié
du tableau puisque l’on va afficher à la fois les minuscules et les majuscules
*/
for(int index = 0; index < (52 / 2); index++) {
// Récupération de la représentation sous forme de caractère du nombre
char minuscule = (char) index + 'a';
char majuscule = (char) index + 'A';
std::cout << "Lettre \'" << majuscule << "\' : " << poidsDesLettres[index]
<< "\t\tLettre \'" << minuscule << "\' : " << poidsDesLettres[index + 26] << std::endl;
}
int nombreMaximal = poidsDesLettres[0];
char cmax = 'A';
for(int index = 1; index < 52; index++) {
// Recherche du maximal
if (nombreMaximal < poidsDesLettres[index]) {
nombreMaximal = poidsDesLettres[index];
// Réprésentation du maximal sous forme de caractère
if (index < 26) {
cmax = (char)(index + 'A');
} else {
cmax = (char)(index - 26 + 'a');
}
}
}
std::cout << "La lettre la plus fréquente est : " << cmax << std::endl;
return EXIT_SUCCESS;
}
</source>
}}
|