Stoll C ++

Stoll C ++

Å konvertere en datatype til en annen er nødvendig for mange forskjellige formål. Og hvis du har noen nyttige innebygde funksjoner tilgjengelig, kan du enkelt konvertere data fra en type til en annen. C ++ programmeringsspråket tilbyr en liste over forskjellige innebygde funksjoner som kan brukes til konvertering av datatype. Denne artikkelen er designet for å lære en av disse konverteringsfunksjonene. Her vil vi illustrere arbeidet med stollfunksjonen til C ++ språket.

Hva er Stoll -funksjon på C ++ programmeringsspråk?

Stoll-funksjonen er en C ++ innebygd funksjon levert av standardbiblioteket til C ++ for å konvertere en streng til en lang lang int. Den tar inngangsstrengen, beregner sin lange lange INT -verdi og returnerer den beregnede verdien. Den setter pekeren på strengens første karakter, itererer gjennom hvert tegn som øker med en og når den siste karakteren.

Syntaks av Stoll -funksjon

Syntaksen til Stoll er som følger:

Stollfunksjonen tar tre parametere: streng, indeks og base. Inngangsstrengen som skal gjøres om til en heltallverdi er inneholdt i "streng" -parameteren. "Indeks" -parameteren er en peker til et objekt som brukes til å spore posisjonen til neste karakter. Det kan være en nullpeker når det ikke er nødvendig. Baseverdien som strengen vil bli analysert lagres i den endelige parameteren, kalt “base”. Som standard er basisverdien 10, og 0 baseverdi bestemmer basen med formatet til strengen. Den returnerer den konverterte heltallverdien i form av lang lang int. La oss forstå arbeidet med Stoll med eksemplene gitt nedenfor:

Eksempel 1

Det første eksemplet på Stoll -funksjonen vil illustrere den grunnleggende funksjonen til Stoll -funksjonen. Her leveres et enkelt og enkelt program slik at du ikke har problemer med å forstå funksjonen. Se følgende kode og forstå linjene i kodetrinnet:

#inkludere
ved hjelp av navneområdet STD;
int main ()

lang lang int d, h, b;
Streng des = "123456";
String hex = "ffffff";
String bin = "101010";
D = Stoll (desember, NullPtr, 10);
H = Stoll (Hex, NullPtr, 16);
B = Stoll (Bin, NullPtr, 2);
cout << dec<<" **Decimal conversion** " << d <cout <cout << bin<<" **Binary conversion** " << b <retur 0;

Programmet starter med overskriftsfilen, som inkluderer alle standardbiblioteksverktøyene som kreves for et C ++ generelt program. "Bruke navneområde std;" lar deg inkludere standardinngangs- og utgangsfunksjonen for å utføre en viss oppgave. Hele programmet er skrevet i hovedfunksjonen.

Her er variablene erklært, og verdier blir tildelt dem. Strengene som må transformeres lagres i variablene “Dec”, “Hex” og “Bin”. Variablene D-, H og B vil holde den konverterte strengen i form av lang lang int.

Her føres parametrene til Stoll -funksjonen. For konvertering av desimalstrengen er base 10 gitt. For å konvertere heksadesimal streng er base 16 gitt, og for å konvertere den binære strengen er base 2 gitt.

Ved hjelp av cout -setningen skrives hver streng og dens konverterte heltallverdier. Return 0 -uttalelsen legges til på slutten av programmet for å sikre at utførelsen er gjort med suksess. Det er en valgfri uttalelse som kan hoppes over.

La oss gjennomgå hver konverterte streng i utdataene nedenfor:

Eksempel 2

La oss teste Stoll -funksjonen med ugyldig inngang. Kompilatoren kaster en feil eller reiser et unntak hvis ugyldig inngang er gitt til Stoll -funksjonen. Hvis utførelsen ikke kan utføres, vil kompilatoren kaste et ugyldig argument unntak. Hvis konverteringen ikke kan utføres på grunn av inngangsverdien utenfor rekkevidden, vil kompilatoren kaste unntaket utenfor rekkevidden. La oss forstå hele dette scenariet med et enkelt eksempel:

#inkludere
ved hjelp av navneområdet STD;
int main ()
String str = "ABCD!~ $#@de ";
prøve
cout << stoll(str) << "\n";

fangst (const std :: ugyldig_argument)
Cerr << "Invalid argument" << "\n";

retur 0;

En streng som inneholder et spesielt tegn er gitt som en inngangsstreng som skal konvertere ved hjelp av Stoll -funksjonen. Stoll -funksjonen kan ikke konvertere spesialtegnene til generelle strengdata. Det reiser et ugyldig argument unntak.

Stollkonvertering utføres i "prøv" -blokken. Hvis konverteringen ikke kan gjøres, vil unntaket av "ugyldig argument" i "fangst" -blokken bli reist.

Her er følgende utgang:

I tilfelle en ugyldig inngangsstreng, kan ikke Stoll utføre sin funksjon og vil kaste et unntak.

Eksempel 3

La oss nå teste Stoll -funksjonen med en blanding av en gyldig og ugyldig inngangsstreng. Her vil vi gi en kombinasjon av gyldige og ugyldige strenger til Stoll -funksjonen for å se arbeidet med Stoll -funksjonen.

#inkludere
ved hjelp av navneområdet STD;
int main ()

String str = “123456789 0xffff 010”;
String :: størrelse_type sz = 0;
samtidig som (!str.tom ())
lang lang ll = stoll (str, & sz, 0);
std :: cout << str.substr(0,sz) << “ converted as “ << ll << '\n';
Str = Str.substr (sz);

retur 0;

Strengen inneholder tre elementer atskilt med plass. Vi vil dele hvert element i en egen streng og konvertere hver og en av dem en etter en. Strengen blir iterert gjennom, og hvert element konverteres uavhengig ved hjelp av en "while" -sløyfe. Substring () -funksjonen deler strengen i forskjellige elementer eller deler. Basen 0 er gitt slik at kompilatoren bestemmer konverteringsbasen automatisk ved å sjekke formatet på inngangsdata.

Det første elementet, “123456789”, er et desimaltall, så det vil bli konvertert til et desimaltall ved bruk av base 10. Desimalkonvertering av “123456789” skal være “123456789”. Det andre elementet, “0xffff”, er en blanding av heltall, streng og heksadesimale tall. Stoll -funksjonen ignorerer de ugyldige tegnene i strengen og vil beregne konvertering av den gyldige strengen.

For eksempel vil "0x" i strengen bli ignorert, og konvertering av "FFFF" vil bli utført. Stoll -funksjonen vil automatisk bestemme basen for konvertering fra dataformatet. "FFFF" er et heltall i heksadesimal serie, så Stoll -funksjonen vil bruke base 16 for strengkonvertering. Og det siste elementet, “010”, er igjen et heltallnummer, så Stoll -funksjonen vil bruke 10 for å konvertere desimalstrengen til et desimal heltall. Den konverterte strengen “010” skal være et “010” heltall. La oss se utdataene nedenfor:

Konklusjon

Vi hadde en rask oversikt over Stoll -funksjonen. Ved hjelp av eksempler lærte vi bruken av Stoll -funksjonen på programmeringsspråket C ++. Tre unike eksempler, sammen med kodeforklaringen, er gitt i denne guiden.