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:
- Strengen som må transformeres er den første parameteren.
- 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.
- 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# eksempelkodeInndata : 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)