Maîtriser le type char en C++ : Déclaration, ASCII et techniques de conversion
Qu'est-ce qu'un char ?
Le type char en C++ est un type de données intégral fondamental qui stocke un seul caractère. En interne, il est représenté comme un entier sur 8 bits, occupant exactement un octet de mémoire. Comme c'est un type intégral, il peut participer à des opérations arithmétiques et des comparaisons comme les autres types numériques.
Dans ce tutoriel, vous apprendrez :
- Définir une variable
char - Comprendre l'ASCII et son rôle dans la représentation des caractères
- Afficher les codes ASCII et les valeurs de caractères
- Lire des caractères depuis l'entrée utilisateur
- Convertir entre caractères et chaînes de plusieurs façons
ASCII – L'encodage sous-jacent
Lorsqu'une valeur char est stockée, le compilateur C++ l'interprète comme un code ASCII (American Standard Code for Information Interchange). L'ASCII assigne une valeur entière (0–127) à chaque caractère imprimable. Par exemple, la lettre 'a' correspond à la valeur décimale 97.
Déclarer une variable char
Pour déclarer une variable caractère, utilisez le mot-clé char suivi d'un nom. Vous pouvez l'initialiser optionnellement avec un littéral de caractère unique entre guillemets simples.
char nomVariable; // Déclaration char nomVariable = 'X'; // Déclaration avec initialisation
Exemple 1 : Déclaration et affichage d'un char
#include <iostream>
using namespace std;
int main() {
char grade = 'B';
cout << "I scored a: " << grade;
return 0;
}
Sortie :

Afficher la valeur ASCII d'un caractère
Puisqu'un char est essentiellement un entier, vous pouvez le caster en int pour révéler son code ASCII.
Exemple 2 : Entrée utilisateur et sortie ASCII
#include <iostream>
using namespace std;
int main() {
char ch;
cout << "Enter any character: ";
cin >> ch;
cout << "The ASCII Value of " << ch << " is " << int(ch);
return 0;
}
Sortie :

Afficher un char à partir d'un code ASCII
Assigner un littéral entier à une variable char fait que le compilateur interprète cet entier comme un code ASCII et stocke le caractère correspondant.
Exemple 3 : Conversion ASCII vers Char
#include <iostream>
using namespace std;
int main() {
char x = 64, y = 66, z = 71;
cout << x << y << z;
return 0;
}
Sortie :

Lire des caractères depuis l'utilisateur
L'opérateur d'extraction >> ne lit que le premier caractère non espace entré. Les caractères suivants restent dans le tampon d'entrée jusqu'à ce que vous les lisiez.
Exemple 4 : Lecture de deux caractères
#include <iostream>
using namespace std;
int main() {
cout << "Type a sequence of characters: ";
char ch;
cin >> ch;
cout << "The ASCII code of " << ch << " is " << int(ch) << '\n';
cin >> ch;
cout << "The ASCII code of " << ch << " is " << int(ch) << '\n';
return 0;
}
Sortie :

Convertir un caractère en chaîne
Plusieurs techniques existent pour transformer un seul caractère en std::string. Voici les approches les plus courantes.
#1 – Utiliser le constructeur de string
string st(1, 'C');
Cela crée une chaîne de longueur un contenant le caractère 'C'.
Exemple 5
#include <iostream>
#include <string>
using namespace std;
int main() {
string st(1, 'C');
cout << "The resulting string is : " << st;
return 0;
}
Sortie :

#2 – Utiliser les opérateurs = et += surchargés
Assigner un caractère directement à une chaîne ou l'ajouter est à la fois concis et lisible.
Exemple 6
#include <iostream>
#include <string>
using namespace std;
int main() {
string st;
char b = 'B';
st = 'A';
st += b;
cout << "The resulting string is : " << st;
return 0;
}
Sortie :

#3 – Utiliser les fonctions membres de string
push_back(char)– Ajoute un caractère à la fin.append(size_t, char)– Ajoute plusieurs copies d'un caractère.assign(size_t, char)– Remplace la chaîne par plusieurs copies d'un caractère.insert(size_t, size_t, char)– Insère des caractères à une position spécifiée.
Exemple 7
#include <iostream>
#include <string>
using namespace std;
int main() {
string st;
st.push_back('A');
cout << "push_back A returns : " << st << endl;
st = "";
st.append(1, 'C');
cout << "append C returns : " << st << endl;
st = "";
st.assign(1, 'D');
cout << "assign D returns : " << st << endl;
st.insert(0, 1, 'E');
cout << "insert single character returns : " << st << endl;
return 0;
}
Sortie :

#4 – Utiliser std::stringstream
Les opérateurs de flux sont surchargés pour char, permettant une conversion facile vers une chaîne.
Exemple 8
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main() {
string st;
stringstream myst;
myst << 'A';
myst >> st;
cout << "The conversion of the single character returns the string: " << st;
return 0;
}
Sortie :

Points clés à retenir
- Un
charest un type intégral sur 8 bits qui contient un seul caractère. - Il occupe un octet et est stocké comme un code ASCII (0–127).
- Les codes ASCII peuvent être révélés en castant un
charenint. - Les caractères peuvent être convertis en chaînes en utilisant constructeurs, opérateurs d'affectation, fonctions membres ou flux de chaînes.
Langue C
- Comprendre les types de données C++ : Fondamentaux, modificateurs et bonnes pratiques
- Maîtriser le transtypage Java : De l'élargissement au rétrécissement et au-delà
- Exploiter les données dans l'Internet de la fiabilité : stratégies pour une gestion efficace
- Boucle do-while en C++ : Syntaxe, exemples pratiques et boucles imbriquées
- Maîtriser les pointeurs en C++ : Concepts, exemples et applications pratiques
- Surcharge d'opérateurs en C++ : Guide pratique avec exemples de code
- Les structures en C++ expliquées avec un exemple pratique
- Maîtriser std::list en C++ : Syntaxe, Fonctions et Exemples Pratiques
- Les Fonctions en C++ Expliquées avec des Exemples de Code Pratiques