HOWTO · C

So konvertieren Sie einen String in eine Ganzzahl in C

Dieser Artikel stellt verschiedene Methoden in C vor, um eine Zeichenkette in eine ganze Zahl zu konvertieren

Auf dieser Seite

Dieser Artikel stellt verschiedene Methoden in einer C-Programmiersprache vor, um eine Zeichenkette in eine ganze Zahl zu konvertieren. Es gibt verschiedene Methoden zur Umwandlung einer Zeichenkette in eine Ganzzahl in C wie atoi(), strtoumax() und strol().

atoi() Funktion zur Konvertierung einer Zeichenkette in eine Ganzzahl in C

Die Funktion atoi() wandelt in der Programmiersprache C eine Zeichenkette in eine ganze Zahl um. Die Funktion atoi() vernachlässigt alle Leerzeichen am Anfang der Zeichenkette, wandelt die Zeichen nach den Leerzeichen um und hält dann an, wenn sie das erste Nicht-Zahlen-Zeichen erreicht.

Die Funktion atoi() gibt die ganzzahlige Darstellung der Zeichenkette zurück.

Wir müssen den <stdlib.h> Header einschließen, um die atoi() Funktion zu verwenden.

atoi() Syntax

int atoi(const char *str);

*str ist ein Zeiger auf eine Zeichenkette, die in eine Ganzzahl umgewandelt werden soll.

atoi() Beispiel-Codes

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void) {
  int value;
  char str[20];
  strcpy(str, "123");
  value = atoi(str);
  printf("String value = %s, Int value = %d\n", str, value);

  return (0);
}

Ausgabe:

String value=123, Int value=123

strtol() Funktion zur Konvertierung einer Zeichenkette in eine ganze Zahl in C

Die Funktion strtol() wandelt in der Programmiersprache C eine Zeichenkette in eine lange Ganzzahl um. Die Funktion strtol() lässt alle Leerzeichen am Anfang der Zeichenkette weg, nachdem sie die nachfolgenden Zeichen als Teil der Zahl umgewandelt hat, und stoppt dann, wenn sie das erste Zeichen findet, das keine Zahl ist.

Die Funktion strtol() gibt die Long-Integer-Wert-Darstellung einer Zeichenkette zurück.

Wir müssen den <stdlib.h> Header einschließen, um die atoi() Funktion zu verwenden.

strtol() Syntax

long int strtol(const char *string, char **laststr, int basenumber);
  • *string ist ein Zeiger auf eine Zeichenkette, die in eine lange Ganzzahl umgewandelt werden soll.
  • **laststr ist ein Zeiger, der anzeigt, wo die Konvertierung aufhört.
  • basenumber ist die Basis mit dem Bereich von [2, 36].
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void) {
  char str[10];
  char *ptr;
  long value;
  strcpy(str, " 123");
  value = strtol(str, &ptr, 10);
  printf("decimal %ld\n", value);

  return 0;
}

Ausgabe:

decimal 123

strtoumax() Funktion zur Umwandlung von String in eine Ganzzahl in C

Die Funktion strtoumax() interpretiert den Inhalt einer Zeichenkette als eine ganze Zahl der angegebenen Basis. Sie lässt jedes Leerzeichen bis zum ersten Nicht-Leerzeichen weg. Dann nimmt sie so viele Zeichen wie möglich, um eine gültige Basis-Ganzzahlendarstellung zu bilden, und wandelt sie in einen ganzzahligen Wert um.

strtoumax() gibt den entsprechenden ganzzahligen Wert einer Zeichenkette zurück. Diese Funktion gibt 0 zurück, wenn die Konvertierung nicht erfolgreich durchgeführt wurde.

strtoumax() Syntax

uintmax_t strtoumax(const char* string, char** last, int basenumber);
  • *string ist ein Zeiger auf eine Zeichenkette, die in eine lange Ganzzahl umgewandelt werden soll.
  • **last ist ein Zeiger, der anzeigt, wo die Konvertierung aufhört.
  • basenumber ist die Basis mit dem Bereich von [2, 36].

strtoumax() Beispiel

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void) {
  char str[10];
  char *ptr;
  int value;
  strcpy(str, " 123");
  printf("The integer value:%d", strtoumax(str, &ptr, 10));

  return 0;
}

Ausgabe:

The long integer value: 123