So verwenden Sie die Strtol -Funktion in C ++

So verwenden Sie die Strtol -Funktion in C ++
In C ++ werden Funktionen verwendet, um ein Programm effizienter und wiederverwendbarer zu gestalten. Der Strtol () Funktion ist eine solche Funktion, die eine Zeichenfolge in einen langen Ganzzahlwert umwandelt. In diesem Artikel werden wir die Syntax und Parameter der Strtol () Funktion und einige Beispiele für die Verwendung in c sehen++.

Was ist Strtol () -Funktion in C++

Der Strtol () Funktion ist eine integrierte Funktion in C ++, die eine Zeichenfolge in einen langen Ganzzahlwert umwandelt. Es akzeptiert eine Zeichenfolge als Daten und transformiert sie mit der angegebenen Basis in einen Ganzzahlwert. Zusätzlich gibt die Methode einen Link oder einen Zeiger auf das anfängliche falsche Zeichen innerhalb der Zeichenfolge zurück.

Syntax von Strtol () Funktion

Die Syntax der Strtol () Die Funktion in C ++ ist wie folgt:

Strtol (s & Ende, Basis)

Parameter der Funktion strtol ()

Der Strtol () Die Funktion hat drei Parameter:

  • S: Ein Zeiger auf die Zeichenfolge, die in einen langen Ganzzahlwert umgewandelt werden soll.
  • Ende: Ein Zeiger auf das erste ungültige Zeichen in der Zeichenfolge oder auf die Zeichenfolge selbst, wenn keine ungültigen Zeichen gefunden werden.
  • Base: Die Basis der Zahl, die konvertiert werden soll. Die Basis kann zwischen 2 und 36 liegen, und wenn sie auf 0 gesetzt ist, bestimmt die Funktion die Basis basierend auf dem Präfix der Eingabezeichenfolge.

Rückgabeart von Strtol () Funktion

Der Strtol () Die Funktion gibt einen langen Ganzzahlwert zurück, der aus der Eingabezeichenfolge konvertiert wird. Wenn keine Konvertierung auftritt, gibt es 0 zurück.

Header-Datei in C ++, um die Strtol () -Funktion in C zu verwenden++

Vor Verwendung der Strtol () Funktionieren Sie in Ihrem C ++ - Code, Sie müssen die definieren #enthalten Header-Datei.

Beispiele für Strtol () -Funktion in c++

Im Folgenden finden Sie einige Beispiele für die Verwendung Strtol () Funktion in c++.

Beispiel 1: Programm zum Umwandeln einer Zeichenfolge mit Dezimalbasis in lange ganze Zahlen umwandeln

Mit Strtol () Funktion, es ist ziemlich einfach, eine Zeichenfolge mit der Dezimalbasis in eine lange Ganzzahl umzuwandeln. Der Code von C ++, der in einer solchen Situation benötigt wird.

#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()
char str [] = "12345678";
char* endptr;
long num = strtol (str, & endptr, 10);
if (endptr == str)
Cout<<"Invalid input"< anders
Cout<<"The number is: "<
Rückkehr 0;

Das obige Programm deklariert ein Zeichenarray namens STR, das die Zeichenfolge enthält "12345678". Ein Zeiger namens Endptr wird verwendet, um die Adresse des ersten Zeichens in der Zeichenfolge zu speichern, die nicht Teil der konvertierten Nummer ist. Der Strtol () Die Funktion wird dann aufgerufen, mit dem Argument Str, und Endptr und 10. Das erste Argument ist die zu konvertierende Zeichenfolge, das zweite Argument ist die Adresse des Zeigers, der mit der Endposition der Zeichenfolge aktualisiert wird, und das dritte Argument ist die Basis für die Konvertierung, die in diesem Fall dezimal ist.

Das Programm prüft dann, ob die Endptr ist gleich dem Beginn der Zeichenfolge. Wenn dies der Fall ist, bedeutet dies, dass die Konvertierung nicht erfolgreich war und eine Fehlermeldung gedruckt wird. Andernfalls druckt das Programm die konvertierte Nummer.

Ausgang

Beispiel 2: Programm zum Umwandeln von Strings in lange Ganzzahlen mit 0 Basen

Wenn wir das Basisargument der festlegen Strtol () Funktion zu 0, die Funktion erkennt die Basis automatisch aus der Eingangszeichenfolge. Dies erleichtert es, Zeichenfolgen verschiedener Basen umzuwandeln, ohne die Basis explizit angeben zu müssen. Zum Beispiel, wenn die Zeichenfolge mit beginnt "0x", Es wird automatisch als Hexadezimalzahl erkannt.

Durch Verwendung der Strtol () Funktion zum Umwandeln von Zeichenfolgen in lange ganze Zahlen mit 0 Basen. Wir können sicherstellen, dass die Eingangszeichenfolge gültig ist und ordnungsgemäß in eine lange ganze Zahl umgewandelt werden kann. Dies kann in vielen Arten von Implementierungen hilfreich sein, z. B. das Lesen numerischer Werte von Benutzereingaben oder Analyse von Informationen aus Textdokumenten.

Das unten angegebene Programm ist entsprechend der zuvor angegebenen Situation gut.

#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()
char str [] = "0xa0b0c0";
char* endptr;
long num = strtol (str, & endptr, 0);
if (endptr == str)
Cout<<"Invalid input"< anders
Cout<<"The number is: "<
Rückkehr 0;

Das obige Programm deklariert ein Zeichenarray mit dem Namen str, die die Zeichenfolge enthält "0xa0b0c0". Der '0x' Das Präfix zeigt an, dass sich die Zeichenfolge im hexadezimalen Format befindet. Ein Zeiger namens Endptr wird ebenfalls deklariert, mit der die Adresse des ersten Zeichens in der Zeichenfolge gespeichert wird, die nicht Teil der konvertierten Nummer ist. Der Strtol () Die Funktion wird dann aufgerufen, mit dem Argument Str, und Endptr und 0. Die Basis für die Konvertierung, die auf 0 eingestellt ist, erkennt die Basis automatisch aus der Eingangszeichenfolge.

Das Programm prüft dann, ob die Endptr ist gleich dem Beginn der Zeichenfolge. Wenn dies der Fall ist, bedeutet dies, dass die Konvertierung nicht erfolgreich war und eine Fehlermeldung gedruckt wird. Andernfalls druckt das Programm die konvertierte Nummer.

Ausgang

Abschluss

In c++, Strtol () Die Funktion wird für die Umwandlung einer Zeichenfolge in einen langen Ganzzahlwert verwendet. Nach den oben genannten Richtlinien können Sie die Verwendung von lernen Strtol () Funktion in C ++, da Sie verschiedene Beispiele finden, die Ihnen helfen, die Grundlagen dieser Funktion zu verstehen.