C ++ String, um die Konvertierung zu doppelten

C ++ String, um die Konvertierung zu doppelten
Betrachten Sie die folgende Saitenliteral:
"Ich habe einige Bücher im Wert von 14 Dollar.25 und andere im Wert von 34 Dollar.87."

Jetzt die Unterstringe “14.25 “und„ 34.87 ”sind String -Literale und keine Zahlen. Wenn Sie den Code haben,

"14.25 " +" 34.87 "

In C ++ werden Sie nicht 49 enden.12. Tatsächlich sollte der Compiler eine Fehlermeldung ausstellen. Das Ergebnis haben, 49.12, “14.25 ”muss in eine Anzahl von Doppel- oder Schwimmertypen umgewandelt werden, und„ 34).87 ”muss in eine Anzahl von Doppel- oder Schwimmertypen umgewandelt werden.

Der Titel dieses Tutorials lautet "C ++ String zum Doppelkonvertieren". Ist Ihr Ziel, die Zeichenfolge in Doppelkonvertieren zu konvertieren; oder alle folgenden zu tun, die verwandt sind?

  • Zeichenfolge zu ganzzahliger String
  • String bis lange Ganzzahl
  • String zum Schweben
  • String bis zu verdoppeln
  • String bis lang doppelt

Dieses Tutorial erklärt all diese Conversions und mehr. Was konvertiert wird, ist ein Objekt in Zeichenfolgeform. Die C ++ - String -Klasse hat Funktionen, um diese zu erledigen. Um diese Funktionen zu verwenden, muss die String -Klasse in das Programm aufgenommen werden.

Artikelinhalt

  • String zu ganzzahliger Konvertierung
  • String auf lange Ganzzahlkonvertierung
  • String, um nicht signierte lange Ganzzahlkonvertierung zu sein
  • String, um nicht signiert, lange Ganzzahlumwandlung zu sein
  • String, um die Konvertierung zu schweben
  • String zur Doppelkonvertierung
  • String bis lange doppelte Konvertierung
  • Vollständige Syntax
  • Whitespace
  • Abschluss

String zu ganzzahliger Konvertierung

Das folgende Programm erledigt dies:

"20" bis int + "30" bis int = 50 als int int

Die zu verwendende vereinfachte Conversion -Syntax lautet:

Stoi (str)

wo Stoi String-to-Integer bedeutet. Das Programm ist:

#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

char str1 [] = "20";
char str2 [] = "30";
int num1 = stoi (str1);
int num2 = Stoi (str2);
int result = num1 + num2;
Cout << result << endl;
Rückkehr 0;

Die Ausgabe ist 50.

String auf lange Ganzzahlkonvertierung

Das folgende Programm erledigt dies:

"20" bis long int + "30" bis long int = 50 als lange int int

Die zu verwendende vereinfachte Conversion -Syntax lautet:

stol (str)

wo stol. Das Programm ist:

#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

char str1 [] = "20";
char str2 [] = "30";
lang int num1 = stol (str1);
lang int num2 = stol (str2);
langes int result = num1 + num2;
Cout << result << endl;
Rückkehr 0;

Die Ausgabe ist 50.

String, um nicht signierte lange Ganzzahlkonvertierung zu sein

Das folgende Programm erledigt dies:

"20" bis nicht signiert int + "30" bis nicht signiert int = 50 als nicht signiert long int int

Die zu verwendende vereinfachte Conversion -Syntax lautet:

Stoul (str)

Wo Stul. Das Programm ist:

#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

char str1 [] = "20";
char str2 [] = "30";
nicht signiert long int num1 = stoul (str1);
nicht signiert long int num2 = stoul (str2);
nicht signiertes langes Int -Ergebnis = Num1 + Num2;
Cout << result << endl;
Rückkehr 0;

Die Ausgabe ist 50.

String, um nicht signiert, lange Ganzzahlumwandlung zu sein

Das folgende Programm erledigt dies:

"20" bis nicht signiert langen, langen int + "30" bis nicht signiert langen int = 50 als nicht signiertes langes, langes int int

Die zu verwendende vereinfachte Conversion -Syntax lautet:

stull (str)

Wo Stul. Das Programm ist:

#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

char str1 [] = "20";
char str2 [] = "30";
nicht signiert long lang int num1 = stoull (str1);
nicht signiert long lang int num2 = stoull (str2);
nicht signiertes langes Int -Ergebnis = Num1 + Num2;
Cout << result << endl;
Rückkehr 0;

Die Ausgabe ist 50.

String, um die Konvertierung zu schweben

Das folgende Programm erledigt dies:

"14.25 "schweben +" 34.87 "zu schweben = 49.12 als Float

Die zu verwendende vereinfachte Conversion -Syntax lautet:

Stof (str)

wo Stof bedeutet String-to-Float. Das Programm ist:

#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

char str1 [] = "14.25 ";
char str2 [] = "34.87 ";
float num1 = Stof (str1);
float num2 = Stof (str2);
float result = num1 + num2;
Cout << result << endl;
Rückkehr 0;

Die Ausgabe ist:

49.12

String zur Doppelkonvertierung

Das folgende Programm erledigt dies:

"14.25 "bis doppelt +" 34.87 "bis doppelt = 49.12 als doppelt

Die zu verwendende vereinfachte Conversion -Syntax lautet:

Stod (str)

wo Stof bedeutet String-to-Float. Das Programm ist:

#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

char str1 [] = "14.25 ";
char str2 [] = "34.87 ";
double num1 = stod (str1);
double num2 = stod (str2);
Doppelergebnis = Num1 + Num2;
Cout << result << endl;
Rückkehr 0;

Die Ausgabe ist:

49.12

String bis lange doppelte Konvertierung

Das folgende Programm erledigt dies:

"14.25 "bis lang Doppel +" 34.87 "bis lang Doppel = 49.12 als doppelt

Die zu verwendende vereinfachte Conversion -Syntax lautet:

stumm (str)

wo Stof bedeutet String-to-Float. Das Programm ist:

#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

char str1 [] = "14.25 ";
char str2 [] = "34.87 ";
langes Doppel num1 = stolgt (str1);
langes Doppel Num2 = stolM (str2);
langes Doppelergebnis = Num1 + Num2;
Cout << result << endl;
Rückkehr 0;

Die Ausgabe ist:

49.12

Vollständige Syntax

Zeichenfolge zu ganzzahliger String
Die vollständige Syntax zum Konvertieren einer Zeichenfolge in Int ist:

int Stoi (const String & str, size_t* idx = nullptr, int base = 10)

Das zweite Argument kann als nullptr zulässig sein. Der Standard für das dritte Argument ist Basis 10. Es kann in eine andere Basis geändert werden, z. B. 16.

Das folgende Programm erledigt dies:

"A" zu int-base-16 + "b" zu int-base-16 = 21 als int-base-10
#enthalten
#enthalten
Verwenden von 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;
Cout << result << endl;
Rückkehr 0;

Die Ausgabe ist 21.

Die anderen Syntaxe werden ähnlich erklärt.

Whitespace

Whitespaces sind ", '\ n', '\ r', '\ f', '\ t', '\ V'. Eine oder mehrere davon können vor oder nach einer Zahl auf einer Zeichenfolge liegen. Während der Umwandlung werden die Whitespaces entfernt.

Das folgende Programm zeigt, wie Whitespace in der Konvertierung von String nach int entfernt wird:

#enthalten
#enthalten
Verwenden von 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;
Cout << result << endl;
Rückkehr 0;

Das folgende Programm zeigt, wie Whitespaces in der Konvertierung von String zu Long INT entfernt werden:

#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

char str1 [] = "\ n 20 \ n";
char str2 [] = "\ t 30 \ t";
lang int num1 = stol (str1);
lang int num2 = stol (str2);
langes int result = num1 + num2;
Cout << result << endl;
Rückkehr 0;

Die Ausgabe ist 50.

Das folgende Programm zeigt, wie Weißespaces in der Konvertierung von String zu unsigned Long INT entfernt werden:

#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

char str1 [] = "\ n 20 \ n";
char str2 [] = "\ t 30 \ t";
nicht signiert long int num1 = stoul (str1);
nicht signiert long int num2 = stoul (str2);
nicht signiertes langes Int -Ergebnis = Num1 + Num2;
Cout << result << endl;
Rückkehr 0;

Die Ausgabe ist 50.

Das folgende Programm zeigt, wie Weißespaziale in der Konvertierung von String in nicht signiertes, langes int entfernt werden:

#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

char str1 [] = "\ n 20 \ n";
char str2 [] = "\ t 30 \ t";
nicht signiert long lang int num1 = stoull (str1);
nicht signiert long lang int num2 = stoull (str2);
nicht signiertes langes Int -Ergebnis = Num1 + Num2;
Cout << result << endl;
Rückkehr 0;

Die Ausgabe ist 50.

Das folgende Programm zeigt, wie Whitespace in der Konvertierung von String in Float entfernt werden:

#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

char str1 [] = "\ n 14.25 \ n ";
char str2 [] = "\ t 34.87 \ t ";
float num1 = Stof (str1);
float num2 = Stof (str2);
float result = num1 + num2;
Cout << result << endl;
Rückkehr 0;

Die Ausgabe ist:

49.12

Das folgende Programm zeigt, wie Whitespaces in der Konvertierung von String zu Doppel entfernt werden:

#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

char str1 [] = "\ n 14.25 \ n ";
char str2 [] = "\ t 34.87 \ t ";
double num1 = stod (str1);
double num2 = stod (str2);
Doppelergebnis = Num1 + Num2;
Cout << result << endl;
Rückkehr 0;

Die Ausgabe ist:

49.12

Das folgende Programm zeigt, wie Weißespaces in der Konvertierung von String zu Long Double entfernt werden:

#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

char str1 [] = "\ n 14.25 \ n ";
char str2 [] = "\ t 34.87 \ t ";
langes Doppel num1 = stolgt (str1);
langes Doppel Num2 = stolM (str2);
langes Doppelergebnis = Num1 + Num2;
Cout << result << endl;
Rückkehr 0;

Die Ausgabe ist:

49.12

Das folgende Programm zeigt, wie Whitespaces in der Konvertierung von String in INT in Basis 16 entfernt werden:

#enthalten
#enthalten
Verwenden von 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;
Cout << result << endl;
Rückkehr 0;

Die Ausgabe ist 21.

Abschluss

C ++ verfügt über Funktionen, um Strings in Zahlen umzuwandeln. Bei der Konvertierung werden Weißspaces ignoriert. Wenn die Zeichenfolge ein Zeichen hat, das keine Ziffer oder Whitespace ist, ist das Ergebnis unzuverlässig. Die Funktionen befinden sich in der String -Bibliothek und sie sind: stoi (), stol (), stoul (), stoll (), stoull (), Stof (), stod () und stolges ().