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