Ciąg C ++ do podwójnej konwersji

Ciąg C ++ do podwójnej konwersji
Rozważ następujący string literał:
„Mam kilka książek o wartości 14 USD.25 i inne warte 34 USD.87."

Teraz pod stramy „14.25 ”i„ 34.87 ”to literały smyczkowe, a nie liczby. Jeśli masz kod,

"14.25 " +" 34.87 "

W C ++ nie skończysz z 49.12. W rzeczywistości kompilator powinien wydać komunikat o błędzie. Mieć wynik, 49.12, „14.25 ”należy przekonwertować na typ liczb podwójnego lub pływaka, a„ 34.87 ”należy przekonwertować na typ liczb podwójnego lub pływaka.

Tytuł tego samouczka to „C ++ ciąg do podwójnej konwersji”. Twoim celem jest konwersja ciągów na podwójne; lub zrobić wszystkie następujące, które są powiązane?

  • ciąg do liczby całkowitych
  • ciąg do długiej liczby całkowitej
  • ciąg do pływania
  • ciąg do podwójnego
  • ciąg do długiego podwójnego

Ten samouczek wyjaśnia wszystkie te konwersje i więcej. To, co jest konwertowane, to obiekt w formie ciągu. Klasa ciągów C ++ ma funkcje, aby. Aby korzystać z tych funkcji, klasa stringowa musi zostać uwzględniona w programie.

Treść artykułu

  • Ciąg do konwersji całkowitej
  • Ciąg do długiej konwersji całkowitej
  • Ciąg do niepodpisanej długiej konwersji liczb całkowitych
  • Ciąg do niepodpisanej długiej konwersji liczb całkowitych
  • Ciąg do zmiennej konwersji
  • Ciąg do podwójnej konwersji
  • Ciąg do długiej podwójnej konwersji
  • Pełna składnia
  • Biała przestrzeń
  • Wniosek

Ciąg do konwersji całkowitej

Poniższy program to:

„20” do int + „30” do int = 50 jako int int

Uproszczona składnia konwersji do użycia jest:

STOI (STR)

gdzie STOI oznacza string-to-integer. Program to:

#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

char str1 [] = "20";
Char str2 [] = "30";
int num1 = stoi (str1);
int num2 = stoi (str2);
int wynik = num1 + num2;
Cout << result << endl;
powrót 0;

Wyjście to 50.

Ciąg do długiej konwersji całkowitej

Poniższy program to:

„20” do długiego int + „30” do długiego int = 50 jak długi int

Uproszczona składnia konwersji do użycia jest:

STOL (STR)

gdzie stol oznacza ciąg do długości. Program to:

#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

char str1 [] = "20";
Char str2 [] = "30";
długie int num1 = stol (str1);
długie int num2 = stol (str2);
long int wynik = num1 + num2;
Cout << result << endl;
powrót 0;

Wyjście to 50.

Ciąg do niepodpisanej długiej konwersji liczb całkowitych

Poniższy program to:

„20” do niepodpisanego długiego int + „30” do unsigned Long Int = 50 jako niepodpisany długi int

Uproszczona składnia konwersji do użycia jest:

Stoul (Str)

gdzie Stoul oznacza odcinek od straży do beznadziejnego. Program to:

#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

char str1 [] = "20";
Char str2 [] = "30";
niepodpisany długi int num1 = stul (str1);
niepodpisany długi int num2 = stul (str2);
niepodpisany długi int wynik = num1 + num2;
Cout << result << endl;
powrót 0;

Wyjście to 50.

Ciąg do niepodpisanej długiej konwersji liczb całkowitych

Poniższy program to:

„20” do długiego, długiego, długiego i „30” do niepodpisanego długiego int = 50 jako niepodpisany długi, długi int

Uproszczona składnia konwersji do użycia jest:

Stoull (str)

gdzie Stoul oznacza odcinek do straży, długiego. Program to:

#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

char str1 [] = "20";
Char str2 [] = "30";
niepodpisany długi int int num1 = stull (str1);
niepodpisany długi int num2 = stull (str2);
niepodpisany długi int wynik = num1 + num2;
Cout << result << endl;
powrót 0;

Wyjście to 50.

Ciąg do zmiennej konwersji

Poniższy program to:

"14.25 „do float +” 34.87 "do float = 49.12 jako pływak

Uproszczona składnia konwersji do użycia jest:

STOF (STR)

gdzie STOF oznacza od strzyżu. Program to:

#włączać
#włączać
za pomocą przestrzeni nazw 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;
powrót 0;

Wyjście to:

49.12

Ciąg do podwójnej konwersji

Poniższy program to:

"14.25 „do Double +” 34.87 "do podwójnego = 49.12 jako podwójne

Uproszczona składnia konwersji do użycia jest:

Stod (Str)

gdzie STOF oznacza od strzyżu. Program to:

#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

char str1 [] = "14.25 ";
Char Str2 [] = "34.87 ";
Double Num1 = STOD (STR1);
Double NUM2 = STOD (STR2);
podwójny wynik = num1 + num2;
Cout << result << endl;
powrót 0;

Wyjście to:

49.12

Ciąg do długiej podwójnej konwersji

Poniższy program to:

"14.25 „do długiego double +” 34.87 "do długiego podwójnego = 49.12 jako podwójne

Uproszczona składnia konwersji do użycia jest:

STOLD (STR)

gdzie STOF oznacza od strzyżu. Program to:

#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

char str1 [] = "14.25 ";
Char Str2 [] = "34.87 ";
długi podwójny num1 = stold (str1);
długi podwójny NUM2 = STOLD (STR2);
długi wynik podwójny = num1 + num2;
Cout << result << endl;
powrót 0;

Wyjście to:

49.12

Pełna składnia

Ciąg do liczby całkowitych
Pełna składnia do konwersji ciągu na INT to:

int sttoi (const string & str, size_t* idx = nullptr, int base = 10)

Drugi argument może być dozwolony jako NULLPTR. Domyślnie trzeciego argumentu jest podstawa 10. Można go zmienić na inną bazę, na przykład 16.

Poniższy program to:

„A” do INT-BASE-16 + „B” do int-base-16 = 21 jako int-base-10
#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

char str1 [] = "a";
Char str2 [] = "b";
int num1 = stoi (str1, nullptr, 16);
int num2 = stoi (str2, nullptr, 16);
int wynik = num1 + num2;
Cout << result << endl;
powrót 0;

Wyjście to 21.

Pozostałe składni są podobnie wyjaśnione.

Biała przestrzeń

WhiteSpaces to ", '\ n', '\ r', '\ f', '\ t', '\ v' '. Jeden lub więcej z nich może znajdować się z przodu lub po liczbie na ciągu. Podczas konwersji białe listy są usuwane.

Poniższy program ilustruje, w jaki sposób białe listy są usuwane w konwersji z ciągów na int:

#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

char str1 [] = "\ n 20 \ n";
Char str2 [] = "\ t 30 \ t";
int num1 = stoi (str1);
int num2 = stoi (str2);
int wynik = num1 + num2;
Cout << result << endl;
powrót 0;

Poniższy program ilustruje, w jaki sposób białe listy są usuwane podczas konwersji z ciągów do długiego INT:

#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

char str1 [] = "\ n 20 \ n";
Char str2 [] = "\ t 30 \ t";
długie int num1 = stol (str1);
długie int num2 = stol (str2);
long int wynik = num1 + num2;
Cout << result << endl;
powrót 0;

Wyjście to 50.

Poniższy program ilustruje, w jaki sposób białe listy są usuwane w konwersji z ciągów do bez znaku długiego INT:

#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

char str1 [] = "\ n 20 \ n";
Char str2 [] = "\ t 30 \ t";
niepodpisany długi int num1 = stul (str1);
niepodpisany długi int num2 = stul (str2);
niepodpisany długi int wynik = num1 + num2;
Cout << result << endl;
powrót 0;

Wyjście to 50.

Poniższy program ilustruje, w jaki sposób białe listy są usuwane w konwersji z ciągów na niepodpisane długie int:

#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

char str1 [] = "\ n 20 \ n";
Char str2 [] = "\ t 30 \ t";
niepodpisany długi int int num1 = stull (str1);
niepodpisany długi int num2 = stull (str2);
niepodpisany długi int wynik = num1 + num2;
Cout << result << endl;
powrót 0;

Wyjście to 50.

Poniższy program ilustruje, w jaki sposób białe listy są usuwane w konwersji z ciągów na float:

#włączać
#włączać
za pomocą przestrzeni nazw 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;
powrót 0;

Wyjście to:

49.12

Poniższy program ilustruje, w jaki sposób białe listy są usuwane w konwersji z ciągu na podwójne:

#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

char str1 [] = "\ n 14.25 \ n ”;
Char str2 [] = "\ t 34.87 \ t ";
Double Num1 = STOD (STR1);
Double NUM2 = STOD (STR2);
podwójny wynik = num1 + num2;
Cout << result << endl;
powrót 0;

Wyjście to:

49.12

Poniższy program ilustruje, w jaki sposób białe listy są usuwane w konwersji z ciągów do długiego podwójnego:

#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

char str1 [] = "\ n 14.25 \ n ”;
Char str2 [] = "\ t 34.87 \ t ";
długi podwójny num1 = stold (str1);
długi podwójny NUM2 = STOLD (STR2);
długi wynik podwójny = num1 + num2;
Cout << result << endl;
powrót 0;

Wyjście to:

49.12

Poniższy program ilustruje, w jaki sposób białe listy są usuwane w konwersji z ciągów do int, w podstawie 16:

#włączać
#włączać
za pomocą przestrzeni nazw 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 wynik = num1 + num2;
Cout << result << endl;
powrót 0;

Wyjście to 21.

Wniosek

C ++ ma funkcje do konwersji ciągów na liczby. W konwersji białe listy są ignorowane. Jeśli łańcuch ma znak, który nie jest cyfrą lub białą, wynik jest niewiarygodny. Funkcje znajdują się w bibliotece strun i są: stoi (), stol (), stul (), stoll (), stull (), stof (), stod () i stold ().