Stol()-Funktion in C++

Stol Funktion In C



C++ ist eine der beliebtesten und ältesten Programmiersprachen, die für die Entwicklung von Hochleistungsanwendungen verwendet wird. Es wird von sehr erfahrenen Programmierern und unerfahrenen Entwicklern verwendet. Es wird hauptsächlich in der Spieleentwicklung verwendet und ist eine ideale Option für die Entwicklung von Betriebssystemen. Beim Schreiben von Code in der Sprache C++ werden Sie möglicherweise Daten von einem Typ in einen anderen konvertieren. In diesem Artikel erfahren Sie, wie Sie eine Zeichenfolge in eine lange Ganzzahl umwandeln. Es ist ziemlich schwierig, einen String in ein anderes Format zu konvertieren. Die Programmiersprache C++ bietet jedoch eine schnelle und effiziente Möglichkeit, Zeichenfolgen in Ganzzahlen umzuwandeln.

stol-Funktion in C++

stol ist eine in C++ integrierte Funktion, die in der std-Bibliothek bereitgestellt wird. Es wandelt Zeichenfolgen in lange Ganzzahlen um. Es wandelt den Inhalt der Zeichenfolge in eine ganze Zahl der angegebenen Basis um und gibt einen langen ganzzahligen Wert zurück. Es braucht drei Parameter, einer ist die Eingabezeichenfolge, der zweite ist der Objektparameter und der dritte ist die numerische Basis. Die Syntax der Stol-Funktion ist unten angegeben, schau mal:









Die Funktion stol nimmt drei Parameter: input_string, size und base. Der „input_string“ stellt den Eingabestring dar, der in eine lange Ganzzahl umgewandelt werden muss.



Der Parameter „size“ stellt das Objekt vom Typ size_t dar, das nach dem Zahlenwert die nächste Zeichenposition im Eingabestring trägt. Es kann ein Nullzeiger sein, wenn er nicht verwendet werden muss.





Der dritte Parameter, der „Basis“-Parameter, stellt die Basis dar, in der die Zeichenfolge interpretiert werden muss. Wenn beispielsweise die Basis „2“ angegeben ist, wird die Zeichenfolge als Ganzzahl zur Basis 2 interpretiert. Der Standardwert des Basisparameters ist 10, und wenn 0 angegeben wird, wird der Basiswert durch das Format in der Sequenz bestimmt. Die stol-Funktion gibt die lange Ganzzahl zurück, die den int-Wert einer gegebenen Zeichenfolge darstellt.

Sehen wir uns nun einige Beispiele an, um zu verstehen, wie die stol-Funktion in C++ funktioniert.



Beispiel 1

In diesem Beispiel stellen wir dezimale und hexadezimale Zeichenfolgen bereit, um zu prüfen, wie die Stol-Funktion sie in dezimale und hexadezimale Ganzzahlen umwandelt.

„dec = 123456789“ ist eine Dezimalzeichenfolge und wird mithilfe der Stol-Funktion stol(dec,&size) in eine lange ganze Zahl umgewandelt. Beachten Sie, dass die Basis nicht in der Funktion als Eingabeparameter bereitgestellt wird, die als Ergebnis die Standardbasis 10 verwendet, um die Zeichenfolge in eine Dezimalzahl umzuwandeln. Um den String jedoch von einer Hexadezimalzahl in eine Dezimalzahl umzuwandeln, wird als Eingabeparameter stol(hex, nullptr, 16) die Basis 16 bereitgestellt. Wie wir wissen, stellt die Basis 16 eine Hexadezimalzahl dar.

#include

#include

#include

int hauptsächlich ( )

{

Standard :: Schnur Dez = '123456789' ;
Standard :: Schnur verhexen = 'a2bf3c' ;
Standard :: Schnur :: Größentyp Größe ;
lang lidec = Standard :: Tisch ( Dezember, & Größe ) ;
lang lihex = Standard :: Tisch ( verhexen, nullptr , 16 ) ;
Standard :: cout << 'Dezimalzeichenfolge eingeben' << Dez << ' umgewandelt in lange Ganzzahl ' << lidec << ' \n ' ;
Standard :: cout << 'Hexadezimalzeichenfolge eingeben' << verhexen << ' umgewandelt in lange Ganzzahl ' << lihex << ' \n ' ;
Rückkehr 0 ;


}

Hier ist die folgende Ausgabe. Beachten Sie, dass die Dezimalzeichenfolge „123456789“ in „123456789“ dezimale lange Ganzzahl umgewandelt wird. Während die hexadezimale Zeichenfolge „a2bf3c“ in die Hexadezimalzahl „10665788“ umgewandelt wird. Hier sind die erforderlichen Schritte, die Sie befolgen können, um zu erfahren, wie die Konvertierung durch die Stol-Funktion erfolgt:

( A2BF3C ) ₁₆ = ( 10 × 16 ) + ( zwei × 16 ) + ( elf × 16 ³ ) + ( fünfzehn × 16 ² ) + ( 3 × 16 ¹ ) + ( 12 × 16 ) = ( 10665788 ) ₁₀

Beispiel Nr. 2

In diesem Beispiel konvertieren wir eine Binärzahl mit der Stol-Funktion. Sehen wir uns den folgenden Code an und verstehen Sie die Funktionsweise des Codes. Als Eingabezeichenfolge wird „1010110110“ und als Eingabebasisparameter stol(bin,&size, 2) die Basis 2 angegeben, die die Zahl im Binärformat darstellt. Die Stol-Funktion wandelt die Binärzahl in eine Dezimalzahl um, indem sie die folgenden Schritte ausführt:

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

#include

#include

int hauptsächlich ( )

{

Standard :: Schnur Behälter = '1010110110' ;
Standard :: Schnur :: Größentyp Größe ;
lang libin = Standard :: Tisch ( Behälter, & Größe, zwei ) ;
Standard :: cout << 'Binärzeichenfolge eingeben' << Behälter << ' umgewandelt in lange Ganzzahl ' << libin << ' \n ' ;
Rückkehr 0 ;


}

Wie Sie sehen können, hat die Stol-Funktion das gleiche Ergebnis zurückgegeben wie der allgemeine Binär-Dezimal-Konvertierungsprozess.

Beispiel Nr. 3

In diesem Beispiel werden wir sehen, was passiert, wenn wir die Stol-Funktion mit ungültiger Eingabe testen. Der Stol-Funktion wird eine Zeichenfolge mit mehreren Zeichen bereitgestellt, und 0 wird als Basiswert bereitgestellt, sodass die Funktion die Basis der Zeichenfolge automatisch bestimmt. Hier ist der Code:

Als Eingabezeichenfolge wird ein Zeichensatz bereitgestellt, der nicht durch irgendwelche Basiswerte bestimmt wird, z. B. 10, 16, 2 usw., sodass die Funktion einen Fehlerwert zurückgibt.

#include

#include

#include

int hauptsächlich ( )

{

Standard :: Schnur Chr = 'A B C D E F G H' ;

Standard :: Schnur :: Größentyp Größe ;
lang Str = Standard :: Tisch ( Chr, nullptr , 0 ) ;
Standard :: cout << 'Zeichenkette eingeben' << Chr << ' umgewandelt in lange Ganzzahl ' << Str << ' \n ' ;
Rückkehr 0 ;


}

Siehe die Ausgabe unten. Beachten Sie, dass der Compiler eine „invalid_argument“-Ausnahme ausgelöst hat, da die Funktion keine Zeichenfolgen berücksichtigt, die nicht mit einem Basiswert bestimmt werden können.

Beispiel Nr. 4

In diesem Beispiel stellen wir eine Kombination aus gültiger und ungültiger Eingabe bereit, um das Ergebnis der Funktion stol() anzuzeigen.

Die Eingabezeichenfolge ist eine Kombination aus gültigen und ungültigen Zeichen, „123xf25“. Die „0“ wird als Eingabebasis bereitgestellt, sodass die Funktion die Basis der Eingabezeichenfolge automatisch basierend auf der Art der Zeichen bestimmt.

#include

#include

#include

int hauptsächlich ( )

{

Standard :: Schnur Chr = '123xf25' ;
Standard :: Schnur :: Größentyp Größe ;
lang Str = Standard :: Tisch ( Chr, nullptr , 0 ) ;
Standard :: cout << 'Eingabezeichenfolge' << Chr << ' umgewandelt in lange Ganzzahl ' << Str << ' \n ' ;
Rückkehr 0 ;


}

Hier ist die Ausgabe, die die Funktionsweise der Stol-Funktion mit einer Kombination aus gültiger und ungültiger Eingabe zeigt:

Beachten Sie, dass die Funktion „123“ in die Dezimalzahl „123“ konvertiert und den Rest der Zeichenfolge verworfen hat, da sie eine ungültige Eingabe „x“ erhalten hat. Die Zeichenfolge nach dem Zeichen „x“ wird von der stol-Funktion nicht konvertiert und gibt nur die ersten Zeichen der Zeichenfolge als long int zurück.

Fazit

In diesem Beitrag haben wir die Stol-Funktion der Programmiersprache C++ untersucht. Anhand einiger nützlicher und einfacher Beispiele haben wir gelernt, wie die Stol-Funktion mit verschiedenen Arten von Eingaben funktioniert. Die stol-Funktion benötigt drei Parameter, die zu konvertierende Eingabezeichenfolge, einen Größenparameter, der die Position der Funktion in der Zeichenfolge darstellt, und den Basiswert, der die Basis der Eingabezeichenfolge darstellt. Es gibt den langen Ganzzahlwert der Eingabezeichenfolge zurück.