logo

std::stoi Funksjon i C++

Stoi() er en standard bibliotekfunksjon som gjør en streng til et heltall. C++-programmerere bruker funksjonen, som står for streng til heltall, for å få heltall fra strenger. I tillegg kan stoi()-funksjonen fjerne andre komponenter, for eksempel etterfølgende bokstaver fra strengen.

Syntaks:



int stoi (string s, size_t* position = 0, int base = 10)>

Parametere:

  1. Strengen som må transformeres er den første parameteren.
  2. Plassering av et heltall som brukes til å spore hvor mange tegn som ble lest. I det scenariet brukes den ikke hvis denne parameteren er en null-peker.
  3. Den tredje og siste parameteren er base. Sekvensens format bestemmer grunntallet som brukes hvis dette er 0. Det bruker grunntallet 10 (desimal) hvis ingen argumenter sendes.

Eksempler:

Inndata: 1NoProgrammer;



Produksjon: 1

Inndata : HelloWorld54;

Produksjon : terminate kalt etter å ha kastet en forekomst av 'std::invalid_argument'



Forklaring: Dette gir ut en feil fordi hvis det første tegnet er ikke-heltall, avsluttes funksjonen stoi().

c# eksempelkode

Inndata : Du har 1 tastatur;

Produksjon : terminate kalt etter å ha kastet en forekomst av 'std::invalid_argument'

hva(): står

Returtype: Strengverdien til et argument sendt til stående() funksjonen returneres som et heltall.

Hvordan det fungerer?

Stoi()-funksjonen, som aksepterer en streng som et argument, kan konvertere heltallskomponenten til en streng til en heltallstype. Den vil kun vurdere heltallsverdier opp til det første ikke-heltallselementet eller slutten av strengen.

Når vi kjører programmet nedenfor, vil det oppstå en feil under kjøring. Dette skyldes det faktum at stoi()-funksjonen slutter å krysse strengen når den møter et ikke-heltallstegn eller et mellomromstegn. Stoi()-funksjonen avsluttes hvis starttegnet er et ikke-heltall.

grå kode

Eksempel:

C++




// C++ Program to convert> // string into integer> // Using stoi function> // Error occurred> #include> #include> using> namespace> std;> // Driver Code> int> main()> {> >string s =>'GeeksForGeeks 1'>;> >// calling stoi() passing string as parameter.> >int> n = stoi(s);> >cout << n;> }>

>

>

tring til int
terminate called after throwing an instance of 'std::invalid_argument' what(): stoi>

Det gir en feil fordi stoi()-funksjonen møter et mellomromstegn før 1.

Eksempel:

C++




// C++ Program to convert> // string into integer> // Using stoi> #include> #include> using> namespace> std;> // Driver Code> int> main()> {> >string str =>'2009, techcodeview.com_founded'>;> >string str1 =>'0x6C1'>;> >string str2 =>'-10010010101'>;> >// Calling stoi() for all strings.> >int> num = stoi(str);> >int> num_hex = stoi(str1, nullptr, 16);> >int> num_bin = stoi(str2, nullptr, 2);> >// printing converted values> >cout << str <<>': '> << num << endl;> >cout << str1 <<>': '> << num_hex << endl;> >cout << str2 <<>': '> << num_bin << endl;> >return> 0;> }>

>

>

Produksjon

2009, techcodeview.com_founded: 2009 0x6C1: 1729 -10010010101: -1173>

Tidskompleksitet: O(n) // n er lengden på strengen.

import maur

Ekstra plass: O(1)