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 123String to Double :
string decimalText = "45.67";
double decimal = stod(decimalText); // devient 45.67Remarque : 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 erreurAide-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 123Convertissez des chaînes de caractères en doubles en utilisant stod() :
string decimalText = "45.67";
double decimal = stod(decimalText); // devient 45.67Remarque : 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.
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
4Opérateurs - Partie 1
Opérateurs arithmétiquesOpérateur moduloIncrémentation / DécrémentationPost-incrémentation / Post-décrémentationRaccourcis arithmétiquesOpérateurs de comparaisonComparaison de chaînes7Bases des entrées/sorties
Instruction coutInstruction cinSaisie de chaînes de caractèresRécapitulatif - Jusqu'à 120Récapitulatif - Vrai ou Faux3Variables - Partie 2
Déclaration de typeConventions de nommageRécapitulatif - Initialisation des variablesType Casting - Partie 1Type Casting - Partie 26Prise de décision
L'instruction IfIf - ElseL'instruction SwitchOpérateur conditionnelRécapitulatif - If ElseIf - Else imbriqués