Stringa c ++ per doppia conversione

Stringa c ++ per doppia conversione
Prendi in considerazione la seguente stringa letterale:
"Ho dei libri per un valore di $ 14.25 e altri per un valore di $ 34.87."

Ora le sottobringe “14.25 "e" 34.87 "sono letterali stringhe e non numeri. Se hai il codice,

"14.25 " +" 34.87 "

In C ++, non finirai con 49.12. In effetti, il compilatore dovrebbe emettere un messaggio di errore. Per avere il risultato, 49.12, “14.25 "devono essere convertiti in un tipo di doppio o galleggiante e" 34.87 "deve essere convertito in un tipo di doppio o galleggiante.

Il titolo di questo tutorial è "C ++ String to Double Conversion". È il tuo obiettivo di convertire la stringa in raddoppio; o per fare tutto quanto segue, che sono correlati?

  • stringa a intero
  • String to Long Integer
  • stringa a galleggiare
  • stringa da raddoppiare
  • String a lungo doppio

Questo tutorial spiega tutte queste conversioni e altro ancora. Ciò che viene convertito è un oggetto in forma di stringa. La classe stringa C ++ ha funzioni per farlo. Per utilizzare queste funzioni, la classe String deve essere inclusa nel programma.

Contenuto dell'articolo

  • Conversione da stringa a intero
  • Conversione da stringa a lunga intera
  • Stringa a conversione intero lunga non firmata
  • Stringa a una lunga conversione interi lunga senza segno
  • String to Float Conversion
  • Stringa per doppia conversione
  • Stringa a una lunga doppia conversione
  • Sintassi completa
  • Spazi bianchi
  • Conclusione

Conversione da stringa a intero

Il seguente programma fa questo:

"20" a int + "30" a int = 50 come int

La sintassi di conversione semplificata da utilizzare è:

stoi (str)

dove stoi significa string-to-integer. Il programma è:

#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

char str1 [] = "20";
char str2 [] = "30";
int Num1 = Stoi (STR1);
int num2 = Stoi (STR2);
int risultato = num1 + num2;
cout << result << endl;
restituzione 0;

L'output è 50.

Conversione da stringa a lunga intera

Il seguente programma fa questo:

"Da 20" a lungo int + "30" a lungo int = 50 come lungo int

La sintassi di conversione semplificata da utilizzare è:

Stol (STR)

dove stol significa string-to-long-integer. Il programma è:

#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

char str1 [] = "20";
char str2 [] = "30";
Long int num1 = Stol (STR1);
Long int num2 = Stol (STR2);
result di Long Int = Num1 + Num2;
cout << result << endl;
restituzione 0;

L'output è 50.

Stringa a conversione intero lunga non firmata

Il seguente programma fa questo:

"20" a unsigned long int + "30" a unsigned long int = 50 come unsigned long int

La sintassi di conversione semplificata da utilizzare è:

Stoul (STR)

dove stoul significa string-to-non firmati. Il programma è:

#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

char str1 [] = "20";
char str2 [] = "30";
senza segno Long int Num1 = Stoul (STR1);
senza segno Long int num2 = Stoul (STR2);
Risultato non firmato Int Int = Num1 + Num2;
cout << result << endl;
restituzione 0;

L'output è 50.

Stringa a una lunga conversione interi lunga senza segno

Il seguente programma fa questo:

"20" a unsigned long, lungo int + "30" a unsigned long long int = 50 come unsigned long, long int

La sintassi di conversione semplificata da utilizzare è:

Stoull (STR)

dove stoul significa string-to-non firmato lungo. Il programma è:

#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

char str1 [] = "20";
char str2 [] = "30";
UNSigned Long Long Int Num1 = Stoull (STR1);
senza firma lungo int Num2 = Stoull (STR2);
Risultato int lungo lungo unsigned = Num1 + Num2;
cout << result << endl;
restituzione 0;

L'output è 50.

String to Float Conversion

Il seguente programma fa questo:

"14.25 "per galleggiare +" 34.87 "per galleggiare = 49.12 come galleggiante

La sintassi di conversione semplificata da utilizzare è:

Stof (STR)

dove Stof significa stringa a flotta. Il programma è:

#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

char str1 [] = "14.25 ";
char str2 [] = "34.87 ";
float num1 = stof (str1);
Float Num2 = Stof (STR2);
risultato float = num1 + num2;
cout << result << endl;
restituzione 0;

L'output è:

49.12

Stringa per doppia conversione

Il seguente programma fa questo:

"14.25 "a doppio +" 34.87 "a doppio = 49.12 come doppio

La sintassi di conversione semplificata da utilizzare è:

Stod (STR)

dove Stof significa stringa a flotta. Il programma è:

#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

char str1 [] = "14.25 ";
char str2 [] = "34.87 ";
Double Num1 = Stod (STR1);
Double Num2 = Stod (STR2);
doppio risultato = num1 + num2;
cout << result << endl;
restituzione 0;

L'output è:

49.12

Stringa a una lunga doppia conversione

Il seguente programma fa questo:

"14.25 "a lungo doppio +" 34.87 "a lungo doppio = 49.12 come doppio

La sintassi di conversione semplificata da utilizzare è:

Stold (STR)

dove Stof significa stringa a flotta. Il programma è:

#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

char str1 [] = "14.25 ";
char str2 [] = "34.87 ";
Long Double Num1 = Stold (STR1);
Long Double Num2 = Stold (STR2);
Long Double Result = Num1 + Num2;
cout << result << endl;
restituzione 0;

L'output è:

49.12

Sintassi completa

Stringa a intero
La sintassi completa per convertire una stringa in int è:

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

Il secondo argomento può essere consentito come nullptr. L'impostazione predefinita per il terzo argomento è la base 10. Può essere cambiato in qualche altra base, come 16.

Il seguente programma fa questo:

"A" a int-base-16 + "b" a int-base-16 = 21 come int-base-10
#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

char str1 [] = "a";
char str2 [] = "b";
int Num1 = Stoi (STR1, NULLPTR, 16);
int Num2 = Stoi (STR2, NULLPTR, 16);
int risultato = num1 + num2;
cout << result << endl;
restituzione 0;

L'output è 21.

Le altre sintassi sono spiegate allo stesso modo.

Spazi bianchi

Gli spazi bianchi sono ", '\ n', '\ r', '\ f', '\ t', '\ v'. Uno o più di questi possono essere davanti o dopo un numero su una stringa. Durante la conversione, gli spazi bianchi vengono rimossi.

Il seguente programma illustra come gli spazi bianchi vengono rimossi nella conversione da stringa a int:

#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

char str1 [] = "\ n 20 \ n";
char str2 [] = "\ t 30 \ t";
int Num1 = Stoi (STR1);
int num2 = Stoi (STR2);
int risultato = num1 + num2;
cout << result << endl;
restituzione 0;

Il seguente programma illustra come gli spazi bianchi vengono rimossi nella conversione da stringa a lunga int:

#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

char str1 [] = "\ n 20 \ n";
char str2 [] = "\ t 30 \ t";
Long int num1 = Stol (STR1);
Long int num2 = Stol (STR2);
result di Long Int = Num1 + Num2;
cout << result << endl;
restituzione 0;

L'output è 50.

Il seguente programma illustra come gli spazi bianchi vengono rimossi nella conversione da stringa a un tempo senza firma:

#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

char str1 [] = "\ n 20 \ n";
char str2 [] = "\ t 30 \ t";
senza segno Long int Num1 = Stoul (STR1);
senza segno Long int num2 = Stoul (STR2);
Risultato non firmato Int Int = Num1 + Num2;
cout << result << endl;
restituzione 0;

L'output è 50.

Il seguente programma illustra come gli spazi bianchi vengono rimossi nella conversione da stringa a una lunga lunga senza firma:

#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

char str1 [] = "\ n 20 \ n";
char str2 [] = "\ t 30 \ t";
UNSigned Long Long Int Num1 = Stoull (STR1);
senza firma lungo int Num2 = Stoull (STR2);
Risultato int lungo lungo unsigned = Num1 + Num2;
cout << result << endl;
restituzione 0;

L'output è 50.

Il seguente programma illustra come gli spazi bianchi vengono rimossi nella conversione da stringa al galleggiante:

#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

char str1 [] = "\ n 14.25 \ n ";
char str2 [] = "\ t 34.87 \ t ";
float num1 = stof (str1);
Float Num2 = Stof (STR2);
risultato float = num1 + num2;
cout << result << endl;
restituzione 0;

L'output è:

49.12

Il seguente programma illustra come gli spazi bianchi vengono rimossi nella conversione da stringa al doppio:

#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

char str1 [] = "\ n 14.25 \ n ";
char str2 [] = "\ t 34.87 \ t ";
Double Num1 = Stod (STR1);
Double Num2 = Stod (STR2);
doppio risultato = num1 + num2;
cout << result << endl;
restituzione 0;

L'output è:

49.12

Il seguente programma illustra come gli spazi bianchi vengono rimossi nella conversione da stringa a un doppio lungo:

#includere
#includere
Utilizzo dello spazio dei nomi 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 Result = Num1 + Num2;
cout << result << endl;
restituzione 0;

L'output è:

49.12

Il seguente programma illustra come gli spazi bianchi vengono rimossi nella conversione da stringa a int, nella base 16:

#includere
#includere
Utilizzo dello spazio dei nomi 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 risultato = num1 + num2;
cout << result << endl;
restituzione 0;

L'output è 21.

Conclusione

C ++ ha funzioni per convertire le stringhe in numeri. Nella conversione, gli spazi bianchi vengono ignorati. Se la stringa ha un carattere che non è una cifra o uno spazio bianco, il risultato è inaffidabile. Le funzioni sono nella libreria delle stringhe e sono: Stoi (), Stol (), Stoul (), Stoll (), Stoull (), Stof (), Stod () e Stold ().