So konvertieren Sie einen String in eine Ganzzahl in C

Jinku Hu 12 Oktober 2023
  1. atoi() Funktion zur Konvertierung einer Zeichenkette in eine Ganzzahl in C
  2. strtol() Funktion zur Konvertierung einer Zeichenkette in eine ganze Zahl in C
  3. strtoumax() Funktion zur Umwandlung von String in eine Ganzzahl in C
So konvertieren Sie einen String in eine Ganzzahl in C

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
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Verwandter Artikel - C String

Verwandter Artikel - C Integer