C ++ streng til dobbel konvertering

C ++ streng til dobbel konvertering
Tenk på følgende streng bokstavelig:
"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?

  • streng til heltall
  • streng til langt heltall
  • streng for å flyte
  • streng for å doble
  • streng til lang dobbelt

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
  • Streng til lang heltallkonvertering
  • Streng til usignert lang heltallkonvertering
  • Streng til usignert lang lang heltallkonvertering
  • Streng for å flyte konvertering
  • Streng til dobbel konvertering
  • Streng til lang dobbel konvertering
  • Full syntaks
  • Whitespace
  • Konklusjon

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