Stol() Funksjon i C++

Stol Funksjon I C



C++ er et av de mest populære og eldste programmeringsspråkene som brukes for utvikling av applikasjoner med høy ytelse. Den brukes blant svært ekspertprogrammerere og nybegynnere. Det brukes hovedsakelig i spillutvikling og er et ideelt alternativ for utvikling av operativsystemer. Når du skriver kode i C++-språket, kan du komme over å konvertere 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 et annet format. Imidlertid gir programmeringsspråket C++ en rask og effektiv måte å konvertere strenger til heltall.

stol Funksjon i C++

Stolen er en innebygd C++-funksjon som tilbys i std-biblioteket. Den konverterer strenger til lange heltall. Den konverterer strenginnholdet til et heltall av den angitte basen og returnerer en lang heltallsverdi. Det tar tre parametere, en er inndatastrengen, den andre er objektparameteren, og den tredje er den numeriske basen. Syntaksen til stol-funksjonen er gitt nedenfor, ta en titt:









Funksjonen stol tar tre parametere: input_string, size og base. 'Input_string' representerer inngangsstrengen som må konverteres til et langt heltall.



Parameteren 'størrelse' representerer objektet av typen size_t som har neste tegnposisjon i inndatastrengen etter den numeriske verdien. Det kan være en null-peker hvis det ikke er nødvendig å bruke.





Den tredje parameteren, 'base'-parameteren representerer basen der strengen må tolkes. For eksempel, hvis '2'-basen er gitt, vil strengen bli tolket som heltallsbase 2-tallet. Standardverdien for basisparameteren er 10, og hvis 0 er angitt, vil basisverdien bli bestemt av formatet i sekvensen. Stol-funksjonen returnerer det lange heltall 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 gi desimal- og heksadesimale strenger for å sjekke hvordan stol-funksjonen konverterer dem til desimale og heksadesimale heltall.

'dec = 123456789' er en desimalstreng og konvertert til et langt heltall ved å bruke stol-funksjonen stol(dec,&size). Merk at grunntallet ikke er gitt i funksjonen som en inngangsparameter, som som et resultat bruker standardgrunnlaget 10 for å konvertere strengen til et desimaltall. Imidlertid, for å konvertere strengen fra et heksadesimalt tall til et desimaltall, er base 16 gitt som inngangsparameter stol(hex, nullptr, 16). Som vi vet, representerer 16-basen et heksadesimalt tall.

#include

#inkluder

#include

int hoved- ( )

{

std :: streng des = '123456789' ;
std :: streng hex = 'a2bf3c' ;
std :: streng :: størrelsetype størrelse ;
lang lidec = std :: bord ( desember, & størrelse ) ;
lang lihex = std :: bord ( hex, nullptr , 16 ) ;
std :: cout << 'Skriv inn desimalstreng' << des << 'konvertert til lang int' << lidec << ' \n ' ;
std :: cout << 'Skriv inn heksadesimal streng' << hex << 'konvertert til lang int' << lihex << ' \n ' ;
komme tilbake 0 ;


}

Her er følgende utgang. Merk at desimalstrengen '123456789' konverteres til '123456789' desimal langt heltall. Mens den heksadesimale strengen 'a2bf3c' konverterte til '10665788' heksadesimalt tall. Her er de nødvendige trinnene du kan følge for å lære hvordan konverteringen gjøres av stol-funksjonen:

( A2BF3C ) ₁₆ = ( 10 × 16 ) + ( to × 16 ) + ( elleve × 16 ³ ) + ( femten × 16 ² ) + ( 3 × 16 ¹ ) + ( 12 × 16 ) = ( 10665788 ) ₁₀

Eksempel #2

I dette eksemplet vil vi konvertere et binært tall ved å bruke stol-funksjonen. La oss se koden nedenfor og forstå hvordan koden fungerer. '1010110110' er gitt som inndatastrengen og base 2 er gitt som input base parameter stol(bin,&size, 2), som representerer tallet i binært format. Stol-funksjonen vil konvertere det binære tallet til et desimaltall ved å følge disse trinnene:

( 1010110110 ) = ( 1 × to ) + ( 0 × to ) + ( 1 × to ) + ( 0 × to ) + ( 1 × to ) + ( 1 × to ) + ( 0 × to ³ ) + ( 1 × to ² ) + ( 1 × to ¹ ) + ( 0 × to ) = ( 694 ) ₁₀ #include

#inkluder

#include

int hoved- ( )

{

std :: streng bin = '1010110110' ;
std :: streng :: størrelsetype størrelse ;
lang libin = std :: bord ( bin, & størrelse, to ) ;
std :: cout << 'Input binær streng' << bin << 'konvertert til lang int' << libin << ' \n ' ;
komme tilbake 0 ;


}

Som du kan se at stol-funksjonen returnerte det samme resultatet som den generelle binære til desimalkonverteringsprosessen gjorde.

Eksempel #3

I dette eksemplet skal vi se hva som skjer hvis vi tester stol-funksjonen med ugyldig inndata. 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 inndatastreng som ikke bestemmes av noen grunnverdier, dvs. 10, 16, 2, osv., så funksjonen vil returnere en feilverdi.

#include

#inkluder

#include

int hoved- ( )

{

std :: streng chr = 'abcdefgh' ;

std :: streng :: størrelsetype størrelse ;
lang str = std :: bord ( chr, nullptr , 0 ) ;
std :: cout << 'Skriv inn tegnstreng' << chr << 'konvertert til lang int' << str << ' \n ' ;
komme tilbake 0 ;


}

Se utgangen nedenfor. Merk at kompilatoren har reist et 'ugyldig_argument'-unntak siden funksjonen ikke henvender seg til strenger som ikke kan bestemmes med noen grunnverdi.

Eksempel #4

I dette eksemplet vil vi gi en kombinasjon av gyldig og ugyldig inndata for å se resultatet av stol()-funksjonen.

Inndatastrengen er en kombinasjon av gyldige og ugyldige tegn, '123xf25'. '0' er gitt som en inngangsbase slik at funksjonen bestemmer basen til inndatastrengen automatisk basert på typen tegn.

#include

#inkluder

#include

int hoved- ( )

{

std :: streng chr = '123xf25' ;
std :: streng :: størrelsetype størrelse ;
lang str = std :: bord ( chr, nullptr , 0 ) ;
std :: cout << 'Inndatastreng' << chr << 'konvertert til lang int' << str << ' \n ' ;
komme tilbake 0 ;


}

Her er utgangen som viser virkemåten til stol-funksjonen med en kombinasjon av gyldig og ugyldig inngang:

Merk at funksjonen konverterte '123' til desimaltallet '123' og forkastet resten av strengen da den mottok en ugyldig inngang 'x'. Strengen etter tegnet 'x' konverteres ikke av stol-funksjonen, og returnerer bare de første tegnene i strengen som long 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 ulike typer innganger. Stol-funksjonen tar tre parametere, inndatastrengen som skal konverteres, en størrelsesparameter som representerer posisjonen til funksjonen i strengen, og grunnverdien som representerer basen til inngangsstrengen. Den returnerer den lange int-verdien til inndatastrengen.