Menu
Coddy logo textTech

Type Casting - Partie 2

Fait partie de la section Fondamentaux du Journey C++ de Coddy — leçon 15 sur 74.

En C++, nous pouvons convertir des nombres en chaînes de caractères et vice versa. Pour convertir une valeur en chaîne, nous pouvons utiliser la fonction std::to_string() :

int number = 789;
bool isValid = true;
string text1 = to_string(number);  // devient "789"
string text2 = isValid ? "true" : "false";  // devient "true"

Lorsque vous convertissez un double en une chaîne de caractères à l'aide de to_string(), il affichera par défaut 6 décimales, même si le nombre d'origine n'en possède pas autant.

Par exemple :

double n1 = 789.0;
string text1 = to_string(n1);
// devient "789.000000"

double n2 = 789.5;
string text2 = to_string(n2);
// devient "789.500000"

double n3 = 789.123;
string text3 = to_string(n3);
// devient "789.123000"

Pour convertir une chaîne de caractères en un type différent, nous avons plusieurs options :

Chaîne vers Entier :

string numberText = "123";
int number = stoi(numberText);  // devient 123

String to Double :

string decimalText = "45.67";
double decimal = stod(decimalText);  // devient 45.67

Remarque : lors de la conversion de chaînes de caractères en nombres, ces fonctions lisent autant de caractères valides que possible à partir du début de la chaîne. Elles ne lèvent une erreur que si la chaîne commence par un caractère non valide :

string validStart = "42abc";
int number = stoi(validStart);  // devient 42 (les lettres à la fin sont ignorées)

string invalidStart = "abc";
int number2 = stoi(invalidStart);  // Cela lèvera une erreur

Aide-mémoire

Convertissez des nombres en chaînes de caractères en utilisant std::to_string() :

int number = 789;
string text = to_string(number);  // devient "789"

La conversion de doubles affiche 6 décimales par défaut :

double n = 789.5;
string text = to_string(n);  // devient "789.500000"

Convertissez des chaînes de caractères en entiers en utilisant stoi() :

string numberText = "123";
int number = stoi(numberText);  // devient 123

Convertissez des chaînes de caractères en doubles en utilisant stod() :

string decimalText = "45.67";
double decimal = stod(decimalText);  // devient 45.67

Remarque : La conversion de chaînes de caractères non valides en nombres générera une erreur.

Essayez vous-même

Cette leçon ne comprend pas de défi de code.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fondamentaux