atoi, atol, atoll
| 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
| (C99) |
konvertiert einen Byte-String in einen Ganzzahlwert (Funktion) |
| (C99) |
konvertiert einen Byte-String in einen vorzeichenlosen Ganzzahlwert (Funktion) |
| (C95)(C99) |
wandelt eine breite Zeichenkette in einen ganzzahligen Wert um (Funktion) |
| (C95)(C99) |
wandelt eine breite Zeichenkette in einen vorzeichenlosen ganzzahligen Wert um (Funktion) |
| C++-Dokumentation für atoi, atol, atoll
| |