Přeskočit na obsah

Strtol

Z Wikipedie, otevřené encyklopedie

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''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.

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.

Související články

[editovat | editovat zdroj]