Frage zu atoi



  • Kann man davon ausgehen, dass atoi, wenn ihm eine zeichenkette, die nicht mit zaheln beginnt oder sogar einen leeren string übergibt immer 0 zurück gibt? Ist das standardisiert oder nur auf den meisten Systemen so?

    Ich konnte leider dazu nichts im manual finden.

    Beispiele:

    atoi("");
    atoi("asdf");
    

    Ich möchte eben wissen ob ich sicher sein kann, dass atoi in diesem fall 0 zurückliefert.

    mfg tobZel



  • atoi liefert den interpretierten Wert einer Ziffernfolge als int zurück, stoppt bei Stringende oder Nichtziffer. Ein Überlauf/Unterlauf wird nicht erkannt, führende Whitespaces werden übergangen, führende +/- wird erkannt.
    Wenn keine Ziffer erkannt wurde, wird 0 geliefert.

    atoi("") -> 0
    atoi("0") -> 0
    atoi("  0") -> 0
    atoi("a") -> 0
    atoi("  a") -> 0
    atoi("123") -> 123
    atoi("  123") -> 123
    atoi("123h") -> 123
    atoi("99999999999999999999999999999999999999999999999999999999999999") -> ??? (INT_MIN/INT_MAX Bereich wird nicht geprüft)
    

Anmelden zum Antworten