Stol -funksjon i C ++

Stol -funksjon i C ++

C ++ er et av de mest populære og eldste programmeringsspråkene som brukes til utvikling av høyytelsesapplikasjoner. Det brukes blant svært ekspertprogrammerere og nybegynnere. Det brukes hovedsakelig i spillutvikling og er et ideelt alternativ for å utvikle operativsystemer. Når du skriver kode på C ++ -språket, kan du komme over konvertering av data fra en type til en annen. I denne artikkelen vil du lære å konvertere en streng til et langt heltall. Det er ganske vanskelig å konvertere en streng til noe annet format. Imidlertid gir C ++ programmeringsspråket en rask og effektiv måte å konvertere strenger til heltall.

Stol -funksjon i C++

Stol er en C ++ innebygd funksjon som leveres i STD-biblioteket. Den konverterer strenger til lange heltall. Den konverterer strenginnholdet til et heltall nummer av den spesifiserte basen og returnerer en lang heltallverdi. Det tar tre parametere, den ene er inngangsstrengen, den andre er objektparameteren, og den tredje er den numeriske basen. Syntaksen til Stol -funksjonen er gitt nedenfor, se:

Funksjonen stol tar tre parametere: input_string, størrelse og base. "Input_String" representerer inngangsstrengen som må konverteres til et langt heltallnummer.

"Størrelse" -parameteren representerer objektet med type størrelse_t som bærer neste karakterposisjon i inngangsstrengen etter den numeriske verdien. Det kan være en nullpeker hvis det ikke er nødvendig å bruke.

Den tredje parameteren, "base" -parameteren representerer basen som strengen må tolkes. For eksempel, hvis "2" -basen er gitt, vil strengen bli tolket som heltallbasen 2 -nummeret. Standardverdien for baseparameteren er 10, og hvis 0 er gitt, vil basisverdien bestemmes av formatet i sekvensen. Stol -funksjonen returnerer det lange heltallnummeret som representerer INT -verdien til en gitt streng.

La oss nå utforske noen eksempler for å forstå hvordan Stol -funksjonen fungerer i C++.

Eksempel 1

I dette eksemplet vil vi tilby desimal og heksadesimale strenger for å sjekke hvordan STOL -funksjonen konverterer dem til desimal og heksadesimal heltallstall.

“DEC = 123456789” er en desimalstreng og konvertert til et langt heltall ved bruk av Stol -funksjonen STOL (DEC, & STØRRELSE). Merk at basen ikke er gitt i funksjonen som en inngangsparameter som som resultat bruker standardbasen 10 for å konvertere strengen til et desimaltall. For å konvertere strengen fra et heksadesimalt tall til et desimaltall, er imidlertid base 16 levert som inngangsparameteren Stol (Hex, NullPTR, 16). Som vi vet representerer 16 -basen et heksadesimalt tall.

#inkludere
#inkludere
#inkludere
int main ()

STD :: String Dec = "123456789";
std :: streng hex = "a2bf3c";
std :: streng :: størrelse_type størrelse;
lang lidec = std :: stol (dec, & størrelse);
lang lihex = std :: stol (hex, nullptr, 16);
std :: cout << "Input decimal string "<std :: cout << "Input hexadecimal string "<retur 0;

Her er følgende utgang. Merk at desimalstrengen “123456789” konvertert til “123456789” desimal langt heltall. Mens den heksadesimale strengen “A2BF3C” konverterte til “10665788” heksadesimal nummer. Her er de nødvendige trinnene du kan følge for å lære hvordan konverteringen gjøres av Stol -funksjonen:

(A2BF3C) ₁₆ = (10 × 16⁵) + (2 × 16⁴) + (11 × 16³) + (15 × 16²) + (3 × 16¹) + (12 × 16⁰) = (10665788) ₁₀

Eksempel nr. 2

I dette eksemplet vil vi konvertere et binært tall ved hjelp av Stol -funksjonen. La oss se koden nedenfor og forstå kodenes arbeid. “1010110110” er gitt som inngangsstrengen og basen 2 er gitt som inngangsbase -parameteren Stol (Bin, & Size, 2), som representerer tallet i binært format. Stol -funksjonen vil konvertere det binære nummeret til et desimaltall ved å følge disse trinnene:

(1010110110) ₂ = (1 × 2⁹) + (0 × 2⁸) + (1 × 2⁷) + (0 × 2⁶) + (1 × 2⁵) + (1 × 2⁴) + (0 × 2³) + (1 × 2²) + (1 × 2¹) + (0 × 2⁰) = (694) ₁₀
#inkludere
#inkludere
#inkludere
int main ()

std :: String bin = "1010110110";
std :: streng :: størrelse_type størrelse;
lang libin = std :: stol (bin, & størrelse, 2);
std :: cout << "Input binary string "<retur 0;

Som du kan se at Stol -funksjonen returnerte samme resultat som den generelle binære til desimalkonverteringsprosessen gjorde.

Eksempel nr. 3

I dette eksemplet skal vi se hva som skjer hvis vi tester Stol -funksjonen med ugyldig inngang. En streng med flere tegn vil bli gitt til STOL -funksjonen og 0 vil bli gitt som basisverdi slik at funksjonen vil bestemme basen til strengen automatisk. Her er koden:

Et sett med tegn er gitt som en inngangsstreng som ikke bestemmes av noen basisverdier, i.e., 10, 16, 2, etc. Så funksjonen vil returnere en feilverdi.

#inkludere
#inkludere
#inkludere
int main ()

std :: String chr = "abcdefgh";
std :: streng :: størrelse_type størrelse;
lang str = std :: stol (chr, nullptr, 0);
std :: cout << "Input character string "<retur 0;

Se utgangen nedenfor. Merk at kompilatoren har reist et unntak for "ugyldig_argument" siden funksjonen ikke imøtekommer strenger som ikke kan bestemmes med noen basisverdi.

Eksempel 4

I dette eksemplet vil vi gi en kombinasjon av gyldige og ugyldige innspill for å se resultatet av Stol () -funksjonen.

Inngangsstrengen er en kombinasjon av gyldige og ugyldige tegn, “123xf25”. “0” ISG levert som en inngangsbase slik at funksjonen bestemmer basen til inngangsstrengen automatisk basert på type tegn.

#inkludere
#inkludere
#inkludere
int main ()

std :: String chr = "123xf25";
std :: streng :: størrelse_type størrelse;
lang str = std :: stol (chr, nullptr, 0);
std :: cout << "Input string "<retur 0;

Her er utgangen som viser arbeidet med STOL -funksjon med en kombinasjon av gyldige og ugyldige inngang:

Merk at funksjonen konverterte “123” til desimaltall “123” og kastet resten av strengen da den mottok en ugyldig inngang “X”. Strengen etter at karakteren “X” ikke konverteres av Stol -funksjonen, og returnerer bare de første tegnene i strengen så lenge int.

Konklusjon

I dette innlegget utforsket vi stol -funksjonen til programmeringsspråket C ++. Ved hjelp av noen nyttige og enkle eksempler lærte vi hvordan Stol -funksjonen fungerer med forskjellige typer innganger. Stol -funksjonen tar tre parametere, inngangsstrengen som skal konverteres, en størrelsesparameter som representerer funksjonen til funksjonen i strengen, og baseverdien som representerer basen til inngangsstrengen. Den returnerer den lange INT -verdien til inngangsstrengen.