Stol() Functie in C++

Stol Functie In C



C++ is een van de meest populaire en oudste programmeertalen die wordt gebruikt voor de ontwikkeling van krachtige applicaties. Het wordt gebruikt door zeer deskundige programmeurs en beginnende ontwikkelaars. Het wordt voornamelijk gebruikt bij de ontwikkeling van games en is een ideale optie voor het ontwikkelen van besturingssystemen. Wanneer u code schrijft in de C++-taal, kunt u gegevens tegenkomen die van het ene type naar het andere worden geconverteerd. In dit artikel leer je om een ​​string om te zetten in een lang geheel getal. Het is vrij moeilijk om een ​​string naar een ander formaat te converteren. De programmeertaal C++ biedt echter een snelle en efficiënte manier om strings om te zetten in gehele getallen.

stol Functie in C++

De stol is een ingebouwde C++-functie in de std-bibliotheek. Het converteert strings naar lange gehele getallen. Het converteert de tekenreeksinhoud naar een geheel getal van het opgegeven grondtal en retourneert een lange integerwaarde. Er zijn drie parameters nodig, één is de invoerreeks, de tweede is de objectparameter en de derde is de numerieke basis. De syntaxis van de stol-functie wordt hieronder gegeven, kijk eens:









De functie stol heeft drie parameters: input_string, size en base. De 'input_string' vertegenwoordigt de invoerreeks die moet worden geconverteerd naar een lang geheel getal.



De parameter 'size' vertegenwoordigt het object van het type size_t dat de volgende tekenpositie in de invoerreeks na de numerieke waarde draagt. Het kan een null-pointer zijn als het niet nodig is om te gebruiken.





De derde parameter, de parameter 'base' vertegenwoordigt de basis waarin de string moet worden geïnterpreteerd. Als bijvoorbeeld het grondtal '2' wordt gegeven, wordt de tekenreeks geïnterpreteerd als het gehele getal met grondtal 2. De standaardwaarde van de basisparameter is 10 en als 0 wordt opgegeven, wordt de basiswaarde bepaald door het formaat in de reeks. De functie stol retourneert het lange gehele getal dat de int-waarde van een bepaalde tekenreeks vertegenwoordigt.

Laten we nu enkele voorbeelden bekijken om te begrijpen hoe de stol-functie werkt in C++.



Voorbeeld 1

In dit voorbeeld geven we decimale en hexadecimale tekenreeksen om te controleren hoe de stol-functie ze omzet in decimale en hexadecimale gehele getallen.

De 'dec = 123456789' is een decimale tekenreeks en wordt omgezet in een lang geheel getal met behulp van de stol-functie stol(dec,&size). Merk op dat het grondtal niet in de functie wordt gegeven als een invoerparameter die als resultaat de standaardgrondtal 10 gebruikt om de tekenreeks om te zetten in een decimaal getal. Echter, voor het converteren van de string van een hexadecimaal getal naar een decimaal getal, wordt grondtal 16 gegeven als de invoerparameter stol(hex, nullptr, 16). Zoals we weten, vertegenwoordigt de 16 een hexadecimaal getal.

#include

#include

#include

int hoofd ( )

{

soa :: snaar december = '123456789' ;
soa :: snaar hex = 'a2bf3c' ;
soa :: snaar :: size_type maat ;
lang lidec = soa :: tafel ( december, & maat ) ;
lang lihex = soa :: tafel ( hex, nullptr , 16 ) ;
soa :: cout << 'Voer decimale tekenreeks in' << december << ' geconverteerd naar lange int ' << lidec << ' \n ' ;
soa :: cout << 'Voer hexadecimale tekenreeks in' << hex << ' geconverteerd naar lange int ' << lihex << ' \n ' ;
opbrengst 0 ;


}

Hier is de volgende uitvoer. Merk op dat de decimale tekenreeks '123456789' geconverteerd naar '123456789' decimaal lang geheel getal. Terwijl de hexadecimale tekenreeks 'a2bf3c' is geconverteerd naar het hexadecimale getal '10665788'. Hier zijn de vereiste stappen die u kunt volgen om te leren hoe de conversie wordt gedaan door de stol-functie:

( A2BF3C ) = ( 10 × 16 ) + ( twee × 16 ) + ( elf × 16 ) + ( vijftien × 16 ² ) + ( 3 × 16 ) + ( 12 × 16 ) = ( 10665788 )

Voorbeeld # 2

In dit voorbeeld zullen we een binair getal converteren met behulp van de stol-functie. Laten we de onderstaande code eens bekijken en de werking van de code begrijpen. De '1010110110' wordt gegeven als de invoerreeks en basis 2 wordt geleverd als de invoerbasisparameter stol(bin,&size, 2), die het getal in binair formaat vertegenwoordigt. De stol-functie converteert het binaire getal naar een decimaal getal door deze stappen te volgen:

( 1010110110 ) = ( 1 × twee ) + ( 0 × twee ) + ( 1 × twee ) + ( 0 × twee ) + ( 1 × twee ) + ( 1 × twee ) + ( 0 × twee ) + ( 1 × twee ² ) + ( 1 × twee ) + ( 0 × twee ) = ( 694 ) #include

#include

#include

int hoofd ( )

{

soa :: snaar bin = '1010110110' ;
soa :: snaar :: size_type maat ;
lang libin = soa :: tafel ( bak, & maat, twee ) ;
soa :: cout << 'Voer binaire string in' << bin << ' geconverteerd naar lange int ' << libin << ' \n ' ;
opbrengst 0 ;


}

Zoals je kunt zien, heeft de stol-functie hetzelfde resultaat geretourneerd als het algemene conversieproces van binair naar decimaal.

Voorbeeld # 3

In dit voorbeeld gaan we kijken wat er gebeurt als we de stol-functie testen met ongeldige invoer. Een reeks van meerdere tekens wordt aan de stol-functie geleverd en 0 wordt als basiswaarde gegeven, zodat de functie automatisch de basis van de tekenreeks bepaalt. Hier is de code:

Een set tekens wordt geleverd als een invoerreeks die niet wordt bepaald door basiswaarden, d.w.z. 10, 16, 2, enz. Dus de functie retourneert een foutwaarde.

#include

#include

#include

int hoofd ( )

{

soa :: snaar chr = 'abcdefgh' ;

soa :: snaar :: size_type maat ;
lang str = soa :: tafel ( chr, nullptr , 0 ) ;
soa :: cout << 'Voer tekenreeks in' << chr << ' geconverteerd naar lange int ' << str << ' \n ' ;
opbrengst 0 ;


}

Zie de uitvoer hieronder. Merk op dat de compiler een uitzondering 'invalid_argument' heeft gegenereerd, omdat de functie geen rekening houdt met tekenreeksen die niet kunnen worden bepaald met een basiswaarde.

Voorbeeld # 4

In dit voorbeeld geven we een combinatie van geldige en ongeldige invoer om het resultaat van de functie stol() te zien.

De invoerreeks is een combinatie van geldige en ongeldige tekens, '123xf25'. De '0' wordt geleverd als een invoerbasis, zodat de functie de basis van de invoerreeks automatisch bepaalt op basis van het type tekens.

#include

#include

#include

int hoofd ( )

{

soa :: snaar chr = '123xf25' ;
soa :: snaar :: size_type maat ;
lang str = soa :: tafel ( chr, nullptr , 0 ) ;
soa :: cout << 'Invoerreeks' << chr << ' geconverteerd naar lange int ' << str << ' \n ' ;
opbrengst 0 ;


}

Hier is de uitvoer die de werking van de stol-functie laat zien met een combinatie van geldige en ongeldige invoer:

Merk op dat de functie de '123' heeft omgezet in decimaal getal '123' en de rest van de string heeft weggegooid omdat deze een ongeldige invoer 'x' heeft ontvangen. De tekenreeks na het teken 'x' wordt niet geconverteerd door de stol-functie, waardoor alleen de eerste tekens van de tekenreeks als long int worden geretourneerd.

Conclusie

In dit bericht hebben we de stol-functie van de programmeertaal C++ onderzocht. Met behulp van enkele handige en eenvoudige voorbeelden hebben we geleerd hoe de stol-functie werkt met verschillende soorten ingangen. De stol-functie heeft drie parameters, de invoerreeks die moet worden geconverteerd, een grootteparameter die de positie van de functie in de tekenreeks vertegenwoordigt en de basiswaarde die de basis van de invoerreeks vertegenwoordigt. Het retourneert de lange int-waarde van de invoertekenreeks.