c string conversion functions
Denne opplæringen dekker C ++ -strengekonverteringsfunksjonene som kan brukes til å konvertere strengen til int & double og int til en streng osv .:
Det er vanlig å konvertere streng til tall som heltall og dobbelt når vi utvikler C ++ - applikasjoner.
Dette emnet dekker funksjonene som kan brukes til å effektivt konvertere strengene til int & doble og numeriske verdier til en streng.
=> Les gjennom den populære C ++ treningsserien her.
Hva du vil lære:
C ++ - konvertering av strengfunksjoner
Når vi programmerer applikasjoner som bruker C ++, blir det nødvendig å konvertere data fra en type til en annen. Konvertering av data skal være slik at ingen data går tapt i det hele tatt når vi konverterer eksisterende data til en ny type. Dette gjelder spesielt når vi konverterer strengdata til tall og omvendt.
hvordan åpne en krukke med java
I denne opplæringen vil vi diskutere de forskjellige funksjonene for å konvertere std :: strengobjekt til numeriske datatyper, inkludert heltall og dobbelt.
Konverter streng til numeriske typer i C ++
Generelt er det to vanlige metoder for å konvertere streng til tall i C ++.
- Bruke stoi- og atoi-funksjoner som replikerer for alle de numeriske datatypene.
- Bruker strengstrømsklasse.
La oss diskutere hver metode i detalj.
Bruke stoi og atoi-funksjoner
std :: strengklasse støtter forskjellige funksjoner for å konvertere streng til heltall, lang, dobbel, flyte osv. Konverteringsfunksjonene som støttes av std :: streng er tabellisert som følger:
Funksjon | Beskrivelse |
---|---|
stående stol stoll | Konverterer streng til heltall (inkludert lange og lange lange typer). |
atoi atoll atoll | Konverterer byte-streng til heltall (inkludert lange og lange lange typer). |
sto støv stolte | Konverterer byte-streng til flytende punktverdier (inkludert float-, double- og long double-typer). |
stul stoull | Konverterer byte-streng til usignert heltall (inkludert usignerte lange og usignerte lange lange typer). |
Merk: Med unntak av funksjonene for å konvertere byte-streng (atoi), er alle de andre konverteringsfunksjonene til stede fra C ++ 11 og utover. Nå skal vi diskutere konverteringsfunksjonene for å konvertere streng til int og streng til dobbel.
Streng til int Bruk av stoi () og atoi ()
stående ()
Funksjonsprototype: stoi (const std :: string & str, std :: size_t * pos = 0, int base = 10);
Parameter (er):
str => Streng å konvertere
pos => Adresse til et helt tall for å lagre antall behandlede tegn; standard = 0
base => Tallbasen; standard = 0
Returverdi: Heltall tilsvarer streng spesifisert.
Unntak: std :: invalid_argument => Hvis ingen konvertering kan utføres.
Std :: out_of_range => Hvis konvertert verdi er utenfor området for resultattypen.
Beskrivelse: Funksjonen stoi () tar en streng som argument og returnerer en heltallverdi. Det vil gi et unntak hvis den konverterte verdien er utenfor området, eller hvis konverteringen ikke kan utføres.
La oss ta et programmeringseksempel for å bedre forstå denne funksjonen.
#include #include using namespace std; int main() { string mystr1 = '53'; string mystr2 = '3.142'; string mystr3 = '31477 with char'; int strint1 = stoi(mystr1); int strint2 = stoi(mystr2); int strint3 = stoi(mystr3); cout << 'stoi('' << mystr1 << '') is ' << strint1 << '
'; cout << 'stoi('' << mystr2 << '') is ' << strint2 << '
'; cout << 'stoi('' << mystr3 << '') is ' << strint3 << '
'; }
Produksjon:
står (“53”) er 53
står (“3,142”) er 3
stoi (“31477 med røye”) er 31477
I programmet ovenfor har vi brukt stoi-funksjon med tre forskjellige strenger. Merk at mens du konverterer strengdataene til et heltall, forkaster funksjonen de hvite mellomrom eller andre tegn.
Derfor når det gjelder mystr2 (3.142), kastet funksjonen alt etter desimaltegnet. På samme måte, i tilfelle mystr3 (“31477 med røye”), ble bare tallet tatt i betraktning. Annet innhold i strengen ble kastet.
atoi ()
Funksjonsprototype: int atoi (const char * str);
Parameter (er): str => Peker til null-avsluttet byte-streng.
Returverdi:
Suksess => Heltall som tilsvarer argumentstr.
Feil => Udefinert hvis den konverterte verdien er utenfor området.
0 => Hvis ingen konvertering kan utføres.
Beskrivelse: Denne funksjonen konverterer en bytestreng til et heltall. Funksjon atoi () forkaster alle mellomrom til et tegn som ikke er mellomrom oppdages, og tar deretter tegnene en etter en for å danne en gyldig heltalstall og konverterer den til et heltall.
Eksempel på atoi Funksjon
#include #include using namespace std; int main() { const char *mystr1 = '24'; const char *mystr2 = '3.142'; const char *mystr3 = '23446 with char'; const char *mystr4 = 'words with 3'; int mynum1 = atoi(mystr1); int mynum2 = atoi(mystr2); int mynum3 = atoi(mystr3); int mynum4 = atoi(mystr4); cout << 'atoi('' << mystr1 << '') is ' << mynum1 << '
'; cout << 'atoi('' << mystr2 << '') is ' << mynum2 << '
'; cout << 'atoi('' << mystr3 << '') is ' << mynum3 << '
'; cout << 'atoi('' << mystr4 << '') is ' << mynum4 << '
'; }
Produksjon:
atoi (“24”) er 24
atoi (“3.142”) er 3
atoi (“23446 med røye”) er 23446
atoi ('ord med 3') er 0
Som vist i programmet ovenfor tar atoi-funksjonen en byte-streng som et argument og konverterer den til et heltall. De hvite mellomrommene eller andre tegn kastes. Hvis den konverterte verdien er utenfor området, returneres 0.
Streng for å doble Bruk stod ()
Funksjonsprototype: stod (const std :: string & str, std :: size_t * pos = 0);
Parameter (er):
str => Streng å konvertere
pos => Adresse til et helt tall for å lagre antall behandlede tegn; standard = 0
Returverdi: Dobbel verdi som tilsvarer den angitte strengen.
Unntak:
std :: invalid_argument => Hvis ingen konvertering kan utføres.
std :: out_of_range => Hvis konvertert verdi er utenfor området for resultattypen.
Beskrivelse: Denne funksjonen konverterer en streng til en flytende verdi. Funksjon stod () forkaster alle mellomrom til et tegn som ikke er mellomrom oppdages, og tar deretter tegnene en etter en for å danne en gyldig representasjon av flytende punkt og konverterer den til flytpunkt.
La oss se et eksempel som demonstrerer denne funksjonen.
#include #include using namespace std; int main() { const char *mystr1 = '24'; const char *mystr2 = '3.142'; const char *mystr3 = '23446 with char'; double mynum1 = stod(mystr1); double mynum2 = stod(mystr2); double mynum3 = stod(mystr3); cout << 'stod('' << mystr1 << '') is ' << mynum1 << '
'; cout << 'stod('' << mystr2 << '') is ' << mynum2 << '
'; cout << 'stod('' << mystr3 << '') is ' << mynum3 << '
'; }
Produksjon:
stod (“24”) er 24
stod (“3.142”) er 3.142
stod (“23446 med røye”) er 23446
fasen av programvareutviklingssyklusen der programmering gjennomføres er:
Ovennevnte program viser bruken av “stod” -funksjonen. Utgangen indikerer de konverterte doble verdiene for de angitte strengene.
Bruker strengstrømsklasse
Å bruke strengstrømsklasse er den enkleste måten å konvertere strengverdier til numeriske verdier.
Vi vil lære strengstrømsklassen i detalj i de påfølgende opplæringene våre. Nedenfor er et C ++ - program som viser konvertering av streng til numeriske verdier.
#include #include using namespace std; int main() { string str = '2508'; stringstream sstream(str); int num = 0; sstream >> num; double dNum=0.0; string doublestr = '3.142'; stringstream dstream(doublestr); dstream >>dNum; cout << 'Value of num : ' << num< Produksjon:
Verdien på antall: 2508
Verdien av dNum: 3.142
I programmet ovenfor ser vi at vi har erklært et strengobjekt. Deretter erklærer vi et strengstrømobjekt og sender strengen til dette objektet slik at strengen konverteres til et strengstrømobjekt. Deretter sendes dette strengstrømobjektet til et heltall ved hjelp av '>>' operator som konverterer strengstrømobjektet til et helt tall.
På samme måte har vi også konvertert strengen til dobbel. Så lenge operatøren '>>' støtter datatypen, kan vi konvertere en streng til hvilken som helst datatype ved hjelp av et strengstrømobjekt.
Konverter int til streng I C ++
Vi kan også konvertere numeriske verdier til strengverdier. Det er to metoder for å konvertere numeriske verdier til strengverdier, og vi vil diskutere de nedenfor.
Bruker to_string () -funksjon
Funksjonsprototype: std :: string to_string (type verdi);
Parameter (er): verdi => Numerisk verdi å konvertere
Returverdi: Strengverdi som holder den konverterte verdien.
Unntak: kan kaste std :: bad_alloc
Beskrivelse: Denne funksjonen to_string () konverterer den numeriske verdien som sendes som et argument til strengtype og returnerer strengen.
La oss se et eksempel på denne funksjonen ved bruk av et C ++ - program.
#include #include // used for string and to_string() using namespace std; int main() { int int_val = 20; float flt_val = 30.50; string str_int = to_string(int_val); string str_float = to_string(flt_val); cout << 'The string representation of integer : '; cout << str_int << endl; cout << 'The string representation of float : '; cout << str_float << endl; return 0; }
Produksjon:
Strengrepresentasjonen av heltall: 20 strengrepresentasjonen av float: 30.500000
verktøy som brukes i stor dataanalyse
Her har vi to variabler, hver av typen heltall og flyt. Deretter kaller vi to_string-metoden to ganger med heltall og float-argument og konverterer begge verdiene til strengverdier. Til slutt viser vi de konverterte verdiene.
Merk at konvertering av flytende punktverdi til strengen kan gi uventede resultater ettersom antall signifikante sifre kan være null med to_string-metoden.
Bruker strengstrømsklasse
Ved å bruke strengstrømsklasse, erklærer strengstrømmen først et strømobjekt som setter inn en numerisk verdi som en strøm i objektet. Deretter bruker den “str ()” -funksjonen til å konvertere en numerisk verdi internt til en streng.
Eksempel:
#include #include #include using namespace std; int main() { int num = 26082019; double num_d = 3.142; ostringstream mystr; ostringstream my_dstr; mystr << num; string resultstr = mystr.str(); my_dstr << num_d; string d_str = my_dstr.str(); cout << 'The string formed from integer is : '; cout << resultstr << endl; cout << 'The string formed from double is : '; cout << d_str << endl; return 0; } #include #include #include using namespace std; int main() { int num = 26082019; double num_d = 3.142; ostringstream mystr; ostringstream my_dstr; mystr << num; string resultstr = mystr.str(); my_dstr << num_d; string d_str = my_dstr.str(); cout << 'The string formed from integer is : '; cout << resultstr << endl; cout << 'The string formed from double is : '; cout << d_str << endl; return 0; }
Produksjon:
Strengen dannet fra heltall er: 26082019
Strengen dannet av dobbelt er: 3.142
I denne oppføringen har vi definert et heltall og en dobbel verdi. Så har vi strudsestrømobjektet ved hjelp av hvilket vi skjuler den numeriske verdien til strengstrømobjektet. Dette bruker '<<’ operator. Next, we use the str() method on a stringstream object to convert it to a string.
Konklusjon
I denne opplæringen diskuterte vi konverteringsfunksjoner som konverterer en streng til numeriske typer og numeriske typer tilbake til en streng. Vi har sett funksjonene og eksemplene til stoi (), stod (), atoi (), to_string () fungerer i detalj. Vi diskuterte også noen av strengstrømmens klassefunksjoner og metoder som hjelper oss med å gjøre de nevnte konverteringene.
Anbefalt lesing = >> Konverter streng til heltall i Java og Metoder for å konvertere Int til String i Java
I vår neste opplæring lærer vi konverteringsfunksjoner for karakterdatatyper.
=> Sjekk In-Depth C ++ Training Tutorials Here.
Anbefalt lesing
- Python-strengfunksjoner
- C ++ tegnkonvertering Funksjoner: char til int, char til streng
- Java String with String Buffer and String Builder Tutorial
- Strengfunksjoner i C ++: getline, substring, strenglengde og mer
- C # Konverter streng til Int ved hjelp av Parse, Convert & TryParse Methods
- VBScript-strengfunksjoner: VBScript inStr, Erstatt, Midt og Trim-funksjoner
- Python String Split Tutorial
- C # String Tutorial - Strengmetoder med kodeeksempler