Funcția Stol() în C++

Functia Stol In C



C++ este unul dintre cele mai populare și mai vechi limbaje de programare utilizate pentru dezvoltarea aplicațiilor de înaltă performanță. Este folosit printre programatorii extrem de experți și dezvoltatorii începători. Este folosit în principal în dezvoltarea jocurilor și este o opțiune ideală pentru dezvoltarea sistemelor de operare. Când scrieți cod în limbajul C++, puteți întâlni conversia datelor de la un tip la altul. În acest articol, veți învăța să convertiți un șir într-un număr întreg lung. Este destul de dificil să convertiți un șir în orice alt format. Cu toate acestea, limbajul de programare C++ oferă o modalitate rapidă și eficientă de a converti șirurile de caractere în numere întregi.

Funcția stol în C++

Stol este o funcție încorporată C++ furnizată în biblioteca standard. Acesta convertește șiruri de caractere în numere întregi lungi. Convertește conținutul șirului într-un număr întreg al bazei specificate și returnează o valoare întregă lungă. Este nevoie de trei parametri, unul este șirul de intrare, al doilea este parametrul obiectului, iar al treilea este baza numerică. Sintaxa funcției stol este dată mai jos, aruncați o privire:









Funcția stol ia trei parametri: input_string, size și base. „Input_string” reprezintă șirul de intrare care trebuie convertit într-un număr întreg lung.



Parametrul „size” reprezintă obiectul de tip size_t care poartă următoarea poziție a caracterului din șirul de intrare după valoarea numerică. Poate fi un pointer nul dacă nu este necesar să fie utilizat.





Al treilea parametru, parametrul „bază” reprezintă baza în care șirul trebuie interpretat. De exemplu, dacă este dată baza „2”, șirul va fi interpretat ca număr întreg de bază 2. Valoarea implicită a parametrului de bază este 10 și dacă este furnizat 0, atunci valoarea de bază va fi determinată de formatul din secvență. Funcția stol returnează numărul întreg lung care reprezintă valoarea int a unui șir dat.

Acum, să explorăm câteva exemple pentru a înțelege cum funcționează funcția stol în C++.



Exemplul #1

În acest exemplu, vom furniza șiruri zecimale și hexazecimale pentru a verifica modul în care funcția stol le convertește în numere întregi zecimale și hexazecimale.

„Dec = 123456789” este un șir zecimal și convertit într-un întreg lung folosind funcția stol stol(dec,&size). Rețineți că baza nu este furnizată în funcție ca parametru de intrare care, ca rezultat, utilizează baza implicită 10 pentru a converti șirul într-un număr zecimal. Cu toate acestea, pentru convertirea șirului dintr-un număr hexazecimal într-un număr zecimal, baza 16 este furnizată ca parametru de intrare stol(hex, nullptr, 16). După cum știm, baza 16 reprezintă un număr hexazecimal.

#include

#include <șir>

#include

int principal ( )

{

std :: şir dec = „123456789” ;
std :: şir hex = 'a2bf3c' ;
std :: şir :: tipul marimii mărimea ;
lung lidic = std :: masa ( dec, & mărimea ) ;
lung lihex = std :: masa ( hex, nullptr , 16 ) ;
std :: cout << „Introduceți șirul zecimal” << dec << ' convertit în long int ' << lidic << ' \n ' ;
std :: cout << „Introduceți șirul hexazecimal” << hex << ' convertit în long int ' << lihex << ' \n ' ;
întoarcere 0 ;


}

Iată următoarea ieșire. Rețineți că șirul zecimal „123456789” a fost convertit în „123456789” întreg zecimal lung. În timp ce șirul hexazecimal „a2bf3c” a fost convertit în „10665788” număr hexazecimal. Iată pașii necesari pe care îi puteți urma pentru a afla cum se face conversia prin funcția stol:

( A2BF3C ) ₁₆ = ( 10 × 16 ) + ( Două × 16 ) + ( unsprezece × 16 ³ ) + ( cincisprezece × 16 ² ) + ( 3 × 16 ¹ ) + ( 12 × 16 ) = ( 10665788 ) ₁₀

Exemplul #2

În acest exemplu, vom converti un număr binar utilizând funcția stol. Să vedem codul de mai jos și să înțelegem funcționarea codului. „1010110110” este dat ca șir de intrare, iar baza 2 este furnizată ca parametru de bază de intrare stol(bin,&size, 2), reprezentând numărul în format binar. Funcția stol va converti numărul binar într-un număr zecimal urmând acești pași:

( 1010110110 ) = ( 1 × Două ) + ( 0 × Două ) + ( 1 × Două ) + ( 0 × Două ) + ( 1 × Două ) + ( 1 × Două ) + ( 0 × Două ³ ) + ( 1 × Două ² ) + ( 1 × Două ¹ ) + ( 0 × Două ) = ( 694 ) ₁₀ #include

#include <șir>

#include

int principal ( )

{

std :: şir cos = „1010110110” ;
std :: şir :: tipul marimii mărimea ;
lung libin = std :: masa ( cos, & mărimea, Două ) ;
std :: cout << „Introduceți șirul binar” << cos << ' convertit în long int ' << libin << ' \n ' ;
întoarcere 0 ;


}

După cum puteți vedea, funcția stol a returnat același rezultat ca și procesul general de conversie binar în zecimal.

Exemplul #3

În acest exemplu, vom vedea ce se întâmplă dacă testăm funcția stol cu ​​o intrare nevalidă. Un șir de caractere multiple va fi furnizat funcției stol și 0 va fi furnizat ca valoare de bază, astfel încât funcția să determine baza șirului automat. Iată codul:

Un set de caractere este furnizat ca șir de intrare care nu este determinat de nicio valoare de bază, adică 10, 16, 2 etc., astfel încât funcția va returna o valoare de eroare.

#include

#include <șir>

#include

int principal ( )

{

std :: şir chr = 'abcdefgh' ;

std :: şir :: tipul marimii mărimea ;
lung str = std :: masa ( chr, nullptr , 0 ) ;
std :: cout << „Intrare șir de caractere” << chr << ' convertit în long int ' << str << ' \n ' ;
întoarcere 0 ;


}

Vedeți rezultatul de mai jos. Rețineți că compilatorul a ridicat o excepție „invalid_argument” deoarece funcția nu se adresează șirurilor care nu pot fi determinate cu nicio valoare de bază.

Exemplul #4

În acest exemplu, vom furniza o combinație de intrări valide și nevalide pentru a vedea rezultatul funcției stol().

Șirul de intrare este o combinație de caractere valide și nevalide, „123xf25”. „0” este furnizat ca bază de intrare, astfel încât funcția determină automat baza șirului de intrare în funcție de tipul de caractere.

#include

#include <șir>

#include

int principal ( )

{

std :: şir chr = „123xf25” ;
std :: şir :: tipul marimii mărimea ;
lung str = std :: masa ( chr, nullptr , 0 ) ;
std :: cout << „Șir de intrare” << chr << ' convertit în long int ' << str << ' \n ' ;
întoarcere 0 ;


}

Iată rezultatul care arată funcționarea funcției stol cu ​​o combinație de intrare validă și nevalidă:

Rețineți că funcția a convertit „123” în număr zecimal „123” și a eliminat restul șirului, deoarece a primit o intrare nevalidă „x”. Șirul de după caracterul „x” nu este convertit de funcția stol, returnând doar primele caractere ale șirului cu lungimea int.

Concluzie

În această postare, am explorat funcția stol a limbajului de programare C++. Cu ajutorul unor exemple simple și utile, am învățat cum funcționează funcția stol cu ​​diferite tipuri de intrări. Funcția stol ia trei parametri, șirul de intrare care urmează să fie convertit, un parametru de dimensiune care reprezintă poziția funcției în șir și valoarea de bază care reprezintă baza șirului de intrare. Returnează valoarea int lung a șirului de intrare.