C ++ String à double conversion

C ++ String à double conversion
Considérez le littéral de chaîne suivant:
"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?

  • chaîne à entière
  • chaîne à entière longue
  • String pour flotter
  • corde pour doubler
  • String à long Double

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
  • Conversion en entier de la corde à longue
  • Chaîne à conversion entière longue non signée
  • Chaîne pour une longue conversion entière longue longue
  • Conversion de chaîne à flotter
  • Chaîne à double conversion
  • Corde à longue conversion
  • Syntaxe complète
  • Espace blanc
  • Conclusion

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 ().