Funkce atoi ( ASCII na celé číslo) v programovacím jazyce C slouží k převodu (převedení) řetězce do číselné podoby.
int atoi(const char *str)Argument strznamená řetězec reprezentovaný jako pole znaků obsahující znaky celého čísla se znaménkem (typ int) čísla. Řetězec musí být ukončen nulou, to znamená, že musí končit znakem "\0". Když atoi()je zadán řetězec bez číselných sekvencí, vrátí v tomto případě nulu (0). Řetězec musí začínat buď přímo číselnou sekvencí, nebo libovolnou kombinací bílých znaků. Po zpracování číselné sekvence je jakýkoli nečíselný zbytek řetězce (pokud existuje) ignorován. Pokud řetězec obsahuje platnou sekvenci číslic představující číslo 0, je vrácena také 0 a z vráceného čísla nelze určit, zda řetězec obsahuje platné číslo či nikoli. Novější funkce strtol tuto nevýhodu nemá, takže by se měla používat v případech, kdy je to kritické. Naproti tomu atoi vám při zpracování hodnot z dialogových oken umožňuje nastavit pole jako „zadejte počet opakování při chybě čtení“ a ve výchozím nastavení je vyplnit nikoli číselnou hodnotou, ale intuitivnější textovou hodnotou, např. „přeskočit chyby bez opakování“, což bude interpretováno jako „0 opakování“ bez zbytečných akcí programátora.
Varianty funkce atoi , atol , atof a atol (později známý jako atoq ), se používají k seslání řetězce na long, doublerespektive long long:
long atol(const char *str) double atof(const char *str) long long atoll(const char *str)( C99 )Funkce atoi , atof a atol jsou součástí C89 Standard C Library (ISO) a funkce atol byla přidána do standardu C99 .