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:
- 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().
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.
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;> }> |
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.
Ekstra plass: O(1)