"J'ai des livres d'une valeur de 14 $.25 et autres d'une valeur de 34 $.87."
Maintenant les sous-traits «14.25 ”et« 34.87 ”sont des littéraux de cordes et non des nombres. Si vous avez le code,
"14.25 "+" 34.87 "
En C ++, vous ne vous retrouverez pas avec 49.12. En fait, le compilateur doit émettre un message d'erreur. Pour avoir le résultat, 49.12, «14.25 ”doit être converti en un type de double ou de flotteur, et« 34.87 ”doit être converti en un type de double ou de flotteur.
Le titre de ce tutoriel est "C ++ String to Double Conversion". Est votre objectif de convertir la chaîne en double; ou pour faire tous les éléments suivants, qui sont liés?
Ce tutoriel explique toutes ces conversions et plus. Ce qui est converti est un objet sous forme de chaîne. La classe C ++ String a des fonctions pour les faire. Pour utiliser ces fonctions, la classe String doit être incluse dans le programme.
Contenu de l'article
Conversion de chaîne à entière
Le programme suivant fait ceci:
"20" à int + "30" à int = 50 comme int
La syntaxe de conversion simplifiée à utiliser est:
stoi (str)
où stoi signifie une chaîne-entière. Le programme est:
#inclure
#inclure
Utilisation de Namespace Std;
int main()
char str1 [] = "20";
char str2 [] = "30";
int num1 = stoi (str1);
int num2 = stoi (str2);
Int result = num1 + num2;
couter << result << endl;
retour 0;
La sortie est 50.
Conversion en entier de la corde à longue
Le programme suivant fait ceci:
"20" à long int + "30" à long int = 50 aussi long int
La syntaxe de conversion simplifiée à utiliser est:
stol (str)
où Stol signifie une chaîne à long. Le programme est:
#inclure
#inclure
Utilisation de Namespace Std;
int main()
char str1 [] = "20";
char str2 [] = "30";
long int num1 = stol (str1);
long int num2 = stol (str2);
long int résultat = num1 + num2;
couter << result << endl;
retour 0;
La sortie est 50.
Chaîne à conversion entière longue non signée
Le programme suivant fait ceci:
"20" à un long int + "30" non signé à un long int = 50 comme un long int
La syntaxe de conversion simplifiée à utiliser est:
Stoul (Str)
où Stoul signifie une corde à un entiment non signé. Le programme est:
#inclure
#inclure
Utilisation de Namespace Std;
int main()
char str1 [] = "20";
char str2 [] = "30";
non signé long int num1 = stoul (str1);
non signé long int num2 = stoul (str2);
Unsigned long int result = num1 + num2;
couter << result << endl;
retour 0;
La sortie est 50.
Chaîne pour une longue conversion entière longue longue
Le programme suivant fait ceci:
"20" à un long, long, long int + "30" à unsignet long int = 50 comme unsignet long, long int
La syntaxe de conversion simplifiée à utiliser est:
Stoull (Str)
où Stoul signifie une corde à unie-longueur. Le programme est:
#inclure
#inclure
Utilisation de Namespace Std;
int main()
char str1 [] = "20";
char str2 [] = "30";
unsigned long long int num1 = stoull (str1);
non signé long int num2 = stoull (str2);
unsigned long long int résultat = num1 + num2;
couter << result << endl;
retour 0;
La sortie est 50.
Conversion de chaîne à flotter
Le programme suivant fait ceci:
"14.25 "pour flotter +" 34.87 "à flotter = 49.12 comme flottant
La syntaxe de conversion simplifiée à utiliser est:
stof (str)
où le stof signifie une chaîne à flotter. Le programme est:
#inclure
#inclure
Utilisation de Namespace Std;
int main()
char str1 [] = "14.25 ";
char str2 [] = "34.87 ";
float num1 = stof (str1);
float num2 = stof (str2);
Résultat float = num1 + num2;
couter << result << endl;
retour 0;
La sortie est:
49.12
Chaîne à double conversion
Le programme suivant fait ceci:
"14.25 "pour double +" 34.87 "pour doubler = 49.12 comme double
La syntaxe de conversion simplifiée à utiliser est:
stod (str)
où le stof signifie une chaîne à flotter. Le programme est:
#inclure
#inclure
Utilisation de Namespace Std;
int main()
char str1 [] = "14.25 ";
char str2 [] = "34.87 ";
double num1 = stod (str1);
double num2 = stod (str2);
Double résultat = num1 + num2;
couter << result << endl;
retour 0;
La sortie est:
49.12
Corde à longue conversion
Le programme suivant fait ceci:
"14.25 "à long double +" 34.87 "à long double = 49.12 comme double
La syntaxe de conversion simplifiée à utiliser est:
Stold (Str)
où le stof signifie une chaîne à flotter. Le programme est:
#inclure
#inclure
Utilisation de Namespace Std;
int main()
char str1 [] = "14.25 ";
char str2 [] = "34.87 ";
long double num1 = stold (str1);
long double num2 = stold (str2);
long double résultat = num1 + num2;
couter << result << endl;
retour 0;
La sortie est:
49.12
Syntaxe complète
Chaîne à entière
La syntaxe complète pour convertir une chaîne en int est:
int stoi (const string & str, size_t * idx = nullptr, int base = 10)
Le deuxième argument peut être autorisé comme nullptr. La valeur par défaut du troisième argument est la base 10. Il peut être changé en une autre base, comme 16.
Le programme suivant fait ceci:
"A" à int-bas-16 + "B" à int-bas-16 = 21 comme int-bas-10
#inclure
#inclure
Utilisation de Namespace Std;
int main()
char str1 [] = "a";
char str2 [] = "b";
int num1 = stoi (str1, nullptr, 16);
int num2 = stoi (str2, nullptr, 16);
Int result = num1 + num2;
couter << result << endl;
retour 0;
La sortie est 21.
Les autres syntaxes sont expliquées de la même manière.
Espace blanc
Les espaces blancs sont ", '\ n', '\ r', '\ f', '\ t', '\ v'. Un ou plusieurs d'entre eux peuvent être devant ou après un numéro sur une chaîne. Pendant la conversion, les espaces blancs sont supprimés.
Le programme suivant illustre comment les espaces blancs sont supprimés dans la conversion de String en int:
#inclure
#inclure
Utilisation de Namespace Std;
int main()
char str1 [] = "\ n 20 \ n";
char str2 [] = "\ t 30 \ t";
int num1 = stoi (str1);
int num2 = stoi (str2);
Int result = num1 + num2;
couter << result << endl;
retour 0;
Le programme suivant illustre comment les espaces blancs sont supprimés dans la conversion de String en long Int:
#inclure
#inclure
Utilisation de Namespace Std;
int main()
char str1 [] = "\ n 20 \ n";
char str2 [] = "\ t 30 \ t";
long int num1 = stol (str1);
long int num2 = stol (str2);
long int résultat = num1 + num2;
couter << result << endl;
retour 0;
La sortie est 50.
Le programme suivant illustre comment les espaces blancs sont supprimés dans la conversion de la chaîne à un long int: non signé:
#inclure
#inclure
Utilisation de Namespace Std;
int main()
char str1 [] = "\ n 20 \ n";
char str2 [] = "\ t 30 \ t";
non signé long int num1 = stoul (str1);
non signé long int num2 = stoul (str2);
Unsigned long int result = num1 + num2;
couter << result << endl;
retour 0;
La sortie est 50.
Le programme suivant illustre comment les espaces blancs sont supprimés dans la conversion de la chaîne à un long long int: non signé:
#inclure
#inclure
Utilisation de Namespace Std;
int main()
char str1 [] = "\ n 20 \ n";
char str2 [] = "\ t 30 \ t";
unsigned long long int num1 = stoull (str1);
non signé long int num2 = stoull (str2);
unsigned long long int résultat = num1 + num2;
couter << result << endl;
retour 0;
La sortie est 50.
Le programme suivant illustre comment les espaces blancs sont supprimés dans la conversion de la chaîne à Float:
#inclure
#inclure
Utilisation de Namespace Std;
int main()
char str1 [] = "\ n 14.25 \ n ";
char str2 [] = "\ t 34.87 \ t ";
float num1 = stof (str1);
float num2 = stof (str2);
Résultat float = num1 + num2;
couter << result << endl;
retour 0;
La sortie est:
49.12
Le programme suivant illustre comment les espaces blancs sont supprimés dans la conversion de la chaîne en double:
#inclure
#inclure
Utilisation de Namespace Std;
int main()
char str1 [] = "\ n 14.25 \ n ";
char str2 [] = "\ t 34.87 \ t ";
double num1 = stod (str1);
double num2 = stod (str2);
Double résultat = num1 + num2;
couter << result << endl;
retour 0;
La sortie est:
49.12
Le programme suivant illustre comment les espaces blancs sont supprimés dans la conversion de la chaîne à Long Double:
#inclure
#inclure
Utilisation de Namespace Std;
int main()
char str1 [] = "\ n 14.25 \ n ";
char str2 [] = "\ t 34.87 \ t ";
long double num1 = stold (str1);
long double num2 = stold (str2);
long double résultat = num1 + num2;
couter << result << endl;
retour 0;
La sortie est:
49.12
Le programme suivant illustre comment les espaces blancs sont supprimés dans la conversion de la chaîne en int, dans la base 16:
#inclure
#inclure
Utilisation de Namespace Std;
int main()
char str1 [] = "\ n a \ n";
char str2 [] = "\ t b \ t";
int num1 = stoi (str1, nullptr, 16);
int num2 = stoi (str2, nullptr, 16);
Int result = num1 + num2;
couter << result << endl;
retour 0;
La sortie est 21.
Conclusion
C ++ a des fonctions pour convertir les chaînes en nombres. Dans la conversion, les espaces blancs sont ignorés. Si la chaîne a un caractère qui n'est pas un chiffre ou un espace blanc, le résultat n'est pas fiable. Les fonctions sont dans la bibliothèque de chaînes et elles sont: stoi (), stol (), stoul (), stoll (), stoull (), stof (), stod () et stold ().