Hvordan bruke strtol -funksjon i C ++

Hvordan bruke strtol -funksjon i C ++
I C ++ brukes funksjoner for å gjøre et program mer effektivt og gjenbrukbart. De Strtol () Funksjon er en slik funksjon som konverterer en streng til en lang heltallverdi. I denne artikkelen vil vi forstå syntaks og parametere for Strtol () funksjon og se noen eksempler på bruken av den i C++.

Hva er strtol () -funksjon i C++

De Strtol () Funksjon er en innebygd funksjon i C ++ som konverterer en streng til en lang heltallverdi. Den godtar en streng som data og transformerer den til en heltallverdi med den spesifiserte basen. I tillegg returnerer metoden en lenke eller peker til det første uriktige tegnet i strengen.

Syntaks av strtol () -funksjon

Syntaksen til Strtol () Funksjon i C ++ er som følger:

Strtol (S, & End, base)

Parametere av strtol () -funksjon

De Strtol () Funksjon har tre parametere:

  • s: En peker til strengen som skal konverteres til en lang heltallverdi.
  • slutt: En peker til det første ugyldige karakteren i strengen, eller til selve strengen hvis ingen ugyldige tegn blir funnet.
  • utgangspunkt: Basen på tallet som skal konverteres. Basen kan være mellom 2 og 36, og hvis den er satt til 0, bestemmer funksjonen basen basert på prefikset til inngangsstrengen.

Returt type strtol () -funksjon

De Strtol () Funksjonen returnerer en lang heltallverdi som konverteres fra inngangsstrengen. Hvis ingen konvertering skjer, returnerer den 0.

Header-fil i C ++ for å bruke strtol () -funksjon i C++

Før du bruker Strtol () Funksjon i C ++ -koden din, du må definere #inkludere headerfil.

Eksempler på strtol () -funksjon i C++

Følgende er noen eksempler på bruk Strtol () funksjon i c++.

Eksempel 1: Program for å konvertere en streng til lange heltall ved hjelp av desimal base

Med Strtol () Funksjon, det er ganske enkelt å konvertere en streng til et langt heltall ved hjelp av desimalbasen. Koden til C ++ som trengs i en slik situasjon vises nedenfor.

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
char str [] = "12345678";
char* endPtr;
Langt num = Strtol (Str, & EndPtr, 10);
if (endPtr == str)
cout<<"Invalid input"< annet
cout<<"The number is: "<
retur 0;

Ovennevnte program erklærer en karaktergruppe som heter STR, som inneholder strengen “12345678”. En peker som heter EndPtr brukes til å lagre adressen til det første tegnet i strengen som ikke er en del av det konverterte nummeret. De Strtol () Funksjon kalles da, med argumentets STR, & ENDPTR, og 10. Det første argumentet er strengen som skal konverteres, det andre argumentet er adressen til pekeren som vil bli oppdatert med sluttposisjonen til strengen, og det tredje argumentet er basen for konverteringen, som er desimal i dette tilfellet.

Programmet sjekker da om EndPtr er lik starten av strengen. Hvis det er det, betyr det at konverteringen ikke var vellykket, og en feilmelding skrives ut. Ellers skriver programmet ut det konverterte nummeret.

Produksjon

Eksempel 2: Program for å konvertere strenger til lange heltall med 0 baser

Hvis vi setter basisargumentet til Strtol () Funksjon til 0, vil funksjonen automatisk oppdage basen fra inngangsstrengen. Dette gjør det lettere å konvertere strenger med forskjellige baser uten å måtte spesifisere basen eksplisitt. For eksempel, hvis strengen begynner med “0x”, Det oppdages automatisk som et heksadesimalt tall.

Ved å bruke Strtol () Funksjon For å konvertere strenger til lange heltall med 0 baser, kan vi sikre at inngangsstrengen er gyldig og kan konverteres riktig til et langt heltall. Dette kan være nyttig i mange typer implementeringer, for eksempel å lese numeriske verdier fra brukerinngang eller analyse av informasjon fra tekstdokumenter.

Programmet gitt nedenfor er godt i henhold til den tidligere uttalte situasjonen.

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
char str [] = "0xa0b0c0";
char* endPtr;
Langt num = Strtol (Str, & EndPtr, 0);
if (endPtr == str)
cout<<"Invalid input"< annet
cout<<"The number is: "<
retur 0;

Ovennevnte program erklærer en karakterist som heter str, som inneholder strengen “0xa0b0c0”. De '0x' Prefikset indikerer at strengen er i heksadesimal format. En peker som heter EndPtr er også erklært, som vil bli brukt til å lagre adressen til det første tegnet i strengen som ikke er en del av det konverterte nummeret. De Strtol () Funksjon kalles da, med argumentets STR, & ENDPTR, og 0. Basen for konverteringen, som er satt til 0, oppdager automatisk basen fra inngangsstrengen.

Programmet sjekker da om EndPtr er lik starten av strengen. Hvis det er det, betyr det at konverteringen ikke var vellykket, og en feilmelding skrives ut. Ellers skriver programmet ut det konverterte nummeret.

Produksjon

Konklusjon

I c++, Strtol () Funksjon brukes til konvertering av en streng til en lang heltallverdi. Etter retningslinjene ovenfor vil du kunne lære bruken av Strtol () funksjon i C ++ siden du finner forskjellige eksempler som vil hjelpe deg med å forstå det grunnleggende i denne funksjonen.