Strtol
strtol je funkce programovacího jazyka C, která převádí celé číslo v řetězeci znaků na proměnnou typu long int
. Název strtol
znamená string to long. Funkce je implementována ve standardní knihovně jazyka C a deklarována v hlavičkovém souboru stdlib.h
s následujícím prototypem.
long strtol(const char *restrict str, char **restrict end, int base);
Argument str
ukazuje na řetězec reprezentovaný polem znaků, který obsahuje znakovou reprezentaci hodnoty znaménkového celého čísla. Řetězec musí být zakončen znakem '\0'. Argument base
určuje základ číselné soustavy, která se má použít (od 2 do 36). Pokud je číslo větší než 10, znaky abecedy ('A'
až 'Z'
) se v reprezentaci použijí jako číslice. Po konverzi je hodnota odkazující na end
nastavena tak, aby ukazovala na znak, který následuje po posledním platném číselném znaku v řetězci. Dále je převedené číslo vráceno jako návratová hodnota funkce. Pokud řetězec neobsahuje platnou číselnou posloupnost, je vrácena nula (0) a globální proměnná errno
je nastavena na hodnotu EINVAL
.
Existují také obdoby této funkce strtoul
, strtoll
a strtoull
, které analyzují a navracejí celé číslo typu unsigned long
, long long
a unsigned long long
.
Standardy
[editovat | editovat zdroj]Funkce strtol je částí ISO standardu knihovny jazyka C (C89, 1989). Funkce strtoll byla přidána jako část knihovny C99 (1999). Byla přidána ke standardu knihovny jazyka C jakožto dobře fungující náhrada pro již existující funkci atoi.
Reference
[editovat | editovat zdroj]- strtol Archivováno 25. 1. 2009 na Wayback Machine. na OpenGroup.org
- Návod k užití