Namensräume
Varianten
Aktionen

atoi, atol, atoll

Von cppreference.com
< c‎ | string‎ | byte
Definiert im Header <stdlib.h>
int       atoi ( const char* str );
(1)
long      atol ( const char* str );
(2)
long long atoll( const char* str );
(3) (seit C99)

Interpretiert einen ganzzahligen Wert in einer Byte-Zeichenkette, auf die str zeigt. Die implizite Basis ist immer 10.

Verwirft alle Leerzeichen, bis das erste Nicht-Leerzeichen gefunden wird, nimmt dann so viele Zeichen wie möglich, um eine gültige Ganzzahl darstellung zu bilden, und wandelt sie in einen ganzzahligen Wert um. Der gültige ganzzahlige Wert besteht aus den folgenden Teilen

  • (optional) Vorzeichen (+ oder -)
  • numerische Ziffern

Wenn der Wert des Ergebnisses nicht dargestellt werden kann, d.h. der konvertierte Wert außerhalb des Bereichs des entsprechenden Rückgabetyps liegt, ist das Verhalten undefiniert.

Inhalt

[edit] Parameter

str - Zeiger auf die nullterminierte Byte-Zeichenkette, die interpretiert werden soll

[edit] Rückgabewert

Ganzzahliger Wert, der dem Inhalt von str bei Erfolg entspricht.

Wenn keine Konvertierung durchgeführt werden kann, wird 0 zurückgegeben.

[edit] Notizen

Der Name steht für „ASCII zu Ganzzahl“.

[edit] Beispiel

#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
    printf("%i\n", atoi(" -123junk"));
    printf("%i\n", atoi(" +321dust"));
    printf("%i\n", atoi("0"));
    printf("%i\n", atoi("0042")); // treated as a decimal number with leading zeros
    printf("%i\n", atoi("0x2A")); // only leading zero is converted discarding "x2A"
    printf("%i\n", atoi("junk")); // no conversion can be performed
    printf("%i\n", atoi("2147483648")); // UB: out of range of int
}

Mögliche Ausgabe

-123
321
0
42
0
0
-2147483648

[edit] Referenzen

  • C23-Standard (ISO/IEC 9899:2024)
  • 7.22.1.2 Die Funktionen atoi, atol und atoll (S. TBD)
  • C17-Standard (ISO/IEC 9899:2018)
  • 7.22.1.2 Die Funktionen atoi, atol und atoll (S. 249)
  • C11-Standard (ISO/IEC 9899:2011)
  • 7.22.1.2 Die Funktionen atoi, atol und atoll (S. 341)
  • C99-Standard (ISO/IEC 9899:1999)
  • 7.20.1.2 Die Funktionen atoi, atol und atoll (S. 307)
  • C89/C90-Standard (ISO/IEC 9899:1990)
  • 4.10.1.2 Die Funktion atoi
  • 4.10.1.3 Die Funktion atol

[edit] Siehe auch

konvertiert einen Byte-String in einen Ganzzahlwert
(Funktion) [bearbeiten]
konvertiert einen Byte-String in einen vorzeichenlosen Ganzzahlwert
(Funktion) [bearbeiten]
(C95)(C99)
wandelt eine breite Zeichenkette in einen ganzzahligen Wert um
(Funktion) [bearbeiten]
wandelt eine breite Zeichenkette in einen vorzeichenlosen ganzzahligen Wert um
(Funktion) [bearbeiten]
C++-Dokumentation für atoi, atol, atoll