"Jeg har noen bøker verdt $ 14.25 og andre verdt $ 34.87.""
Nå understrengene “14.25 ”og“ 34.87 ”er strenglitteraler og ikke tall. Hvis du har koden,
"14.25 " +" 34.87 "
I C ++ vil du ikke ende opp med 49.12. Faktisk bør kompilatoren utstede en feilmelding. Å ha resultatet, 49.12, “14.25 ”må konverteres til en antall type dobbelt eller float, og“ 34.87 ”må konverteres til en antall type dobbelt eller float.
Tittelen på denne opplæringen er “C ++ streng til dobbel konvertering”. Er målet ditt å konvertere streng til dobbel; eller å gjøre alt av følgende, som er relatert?
Denne opplæringen forklarer alle disse konverteringene og mer. Det som blir konvertert er et objekt i strengform. C ++ strengklassen har funksjoner for å gjøre disse. For å bruke disse funksjonene, må strengklassen inkluderes i programmet.
Artikkelinnhold
Streng til heltallkonvertering
Følgende program gjør dette:
"20" til int + "30" til int = 50 som int
Den forenklede konverteringssyntaksen som skal brukes er:
stoi (str)
hvor stoi betyr streng-til-heltall. Programmet er:
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
char str1 [] = "20";
char str2 [] = "30";
int num1 = stoi (str1);
int num2 = stoi (str2);
int resultat = num1 + num2;
cout << result << endl;
retur 0;
Utgangen er 50.
Streng til lang heltallkonvertering
Følgende program gjør dette:
"20" til lang int + "30" til lang int = 50 som lang int
Den forenklede konverteringssyntaksen som skal brukes er:
stol (str)
Hvor stol betyr streng-til-lang-heltall. Programmet er:
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
char str1 [] = "20";
char str2 [] = "30";
lang int num1 = stol (str1);
lang int num2 = stol (str2);
Langt resultat = num1 + num2;
cout << result << endl;
retur 0;
Utgangen er 50.
Streng til usignert lang heltallkonvertering
Følgende program gjør dette:
"20" til usignert lang int + "30" til usignert lang int = 50 som usignert lang int
Den forenklede konverteringssyntaksen som skal brukes er:
Stoul (str)
Hvor Stoul betyr streng-til-ubeting-lang-heltall. Programmet er:
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
char str1 [] = "20";
char str2 [] = "30";
usignert lang int num1 = stoul (str1);
usignert lang int num2 = stoul (str2);
usignert langt int -resultat = num1 + num2;
cout << result << endl;
retur 0;
Utgangen er 50.
Streng til usignert lang lang heltallkonvertering
Følgende program gjør dette:
"20" til usignert lang, lang int + "30" til usignert lang lang int = 50 som usignert lang, lang int
Den forenklede konverteringssyntaksen som skal brukes er:
Stoull (str)
Hvor Stoul betyr streng-til-ubeting-lang-lang-heltall. Programmet er:
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
char str1 [] = "20";
char str2 [] = "30";
usignert lang lang int num1 = stoull (str1);
usignert lang lang int num2 = stoull (str2);
usignert langt langt INT -resultat = num1 + num2;
cout << result << endl;
retur 0;
Utgangen er 50.
Streng for å flyte konvertering
Følgende program gjør dette:
"14.25 "å flyte +" 34.87 "å flyte = 49.12 som flyter
Den forenklede konverteringssyntaksen som skal brukes er:
stof (str)
Hvor stof betyr streng-til-float. Programmet er:
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
char str1 [] = "14.25 ";
char str2 [] = "34.87 ";
float num1 = stof (str1);
float num2 = stof (str2);
FLOAT -resultat = num1 + num2;
cout << result << endl;
retur 0;
Utgangen er:
49.12
Streng til dobbel konvertering
Følgende program gjør dette:
"14.25 "til dobbel +" 34.87 "til dobbelt = 49.12 som dobbelt
Den forenklede konverteringssyntaksen som skal brukes er:
stod (str)
Hvor stof betyr streng-til-float. Programmet er:
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
char str1 [] = "14.25 ";
char str2 [] = "34.87 ";
dobbelt num1 = stod (str1);
dobbelt num2 = stod (str2);
dobbelt resultat = num1 + num2;
cout << result << endl;
retur 0;
Utgangen er:
49.12
Streng til lang dobbel konvertering
Følgende program gjør dette:
"14.25 "til lang dobbel +" 34.87 "til lang dobbel = 49.12 som dobbelt
Den forenklede konverteringssyntaksen som skal brukes er:
Stold (str)
Hvor stof betyr streng-til-float. Programmet er:
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
char str1 [] = "14.25 ";
char str2 [] = "34.87 ";
Lang dobbel num1 = stold (str1);
Lang dobbel num2 = stold (str2);
Langt dobbelt resultat = num1 + num2;
cout << result << endl;
retur 0;
Utgangen er:
49.12
Full syntaks
Streng til heltall
Hele syntaksen for å konvertere en streng til int er:
int stoi (const string & str, size_t* idx = nullptr, int base = 10)
Det andre argumentet kan tillates som NULLPTR. Standard for det tredje argumentet er base 10. Det kan endres til en annen base, for eksempel 16.
Følgende program gjør dette:
"A" til INT-Base-16 + "B" til INT-Base-16 = 21 som INT-Base-10
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
char str1 [] = "a";
char str2 [] = "b";
int num1 = stoi (str1, nullptr, 16);
int num2 = stoi (str2, nullptr, 16);
int resultat = num1 + num2;
cout << result << endl;
retur 0;
Utgangen er 21.
De andre syntaksene er på samme måte forklart.
Whitespace
Whitespaces er ", '\ n', '\ r', '\ f', '\ t', '\ V'. En eller flere av disse kan være foran eller etter et tall på en streng. Under konvertering fjernes hvitder.
Følgende program illustrerer hvordan hvitespaser fjernes i konvertering fra streng til int:
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
char str1 [] = "\ n 20 \ n";
char str2 [] = "\ t 30 \ t";
int num1 = stoi (str1);
int num2 = stoi (str2);
int resultat = num1 + num2;
cout << result << endl;
retur 0;
Følgende program illustrerer hvordan hvitespaser fjernes i konverteringen fra streng til lang int:
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
char str1 [] = "\ n 20 \ n";
char str2 [] = "\ t 30 \ t";
lang int num1 = stol (str1);
lang int num2 = stol (str2);
Langt resultat = num1 + num2;
cout << result << endl;
retur 0;
Utgangen er 50.
Følgende program illustrerer hvordan hvitespaser fjernes i konverteringen fra streng til usignert lang int:
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
char str1 [] = "\ n 20 \ n";
char str2 [] = "\ t 30 \ t";
usignert lang int num1 = stoul (str1);
usignert lang int num2 = stoul (str2);
usignert langt int -resultat = num1 + num2;
cout << result << endl;
retur 0;
Utgangen er 50.
Følgende program illustrerer hvordan hvitespaser fjernes i konverteringen fra streng til usignert lang lang int:
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
char str1 [] = "\ n 20 \ n";
char str2 [] = "\ t 30 \ t";
usignert lang lang int num1 = stoull (str1);
usignert lang lang int num2 = stoull (str2);
usignert langt langt INT -resultat = num1 + num2;
cout << result << endl;
retur 0;
Utgangen er 50.
Følgende program illustrerer hvordan hvitespaser fjernes i konverteringen fra streng til flyte:
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
char str1 [] = "\ n 14.25 \ n ";
char str2 [] = "\ t 34.87 \ t ";
float num1 = stof (str1);
float num2 = stof (str2);
FLOAT -resultat = num1 + num2;
cout << result << endl;
retur 0;
Utgangen er:
49.12
Følgende program illustrerer hvordan hvitespaser fjernes i konverteringen fra streng til dobbel:
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
char str1 [] = "\ n 14.25 \ n ";
char str2 [] = "\ t 34.87 \ t ";
dobbelt num1 = stod (str1);
dobbelt num2 = stod (str2);
dobbelt resultat = num1 + num2;
cout << result << endl;
retur 0;
Utgangen er:
49.12
Følgende program illustrerer hvordan hvitespaser fjernes i konverteringen fra streng til lang dobbel:
#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
char str1 [] = "\ n 14.25 \ n ";
char str2 [] = "\ t 34.87 \ t ";
Lang dobbel num1 = stold (str1);
Lang dobbel num2 = stold (str2);
Langt dobbelt resultat = num1 + num2;
cout << result << endl;
retur 0;
Utgangen er:
49.12
Følgende program illustrerer hvordan hvitespaser fjernes i konvertering fra streng til int, i base 16:
#inkludere
#inkludere
ved hjelp av navneområdet 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 resultat = num1 + num2;
cout << result << endl;
retur 0;
Utgangen er 21.
Konklusjon
C ++ har funksjoner for å konvertere strenger til tall. I konverteringen ignoreres hvitt. Hvis strengen har et tegn som ikke er et siffer eller hvitrom, er resultatet upålitelig. Funksjonene er i strengbiblioteket, og de er: stoi (), stol (), stoul (), stoll (), stoull (), stof (), stod (), og stold ().