Назва

strtol, strtoll, strtoq - перетворює ланцюжок на довге ціле

Огляд

#include <stdlib.h>

long int
strtol(const char nptr, char *endptr, int base);

long long int strtoll(const char nptr, char *endptr, int base);

Опис

Функція strtol() перетворює ланцюжок nptr на довге ціле, відповідно до основи системи числення base; остання повинна знаходитись між 2 та 36 включно, або бути спеціальним значенням 0.

Ланцюжок повинен починатися з необов'язкових пропусків (як їх розпізнає ?isspace(3)) з наступним необов'язковим знаком +' або-'. Якщо base дорівнює нуль або 16, ланцюжок може включати префікс 0x' і число читатиметься як шістнадцяткове; нульове значення _base_ розглядається як десяткова система числення, хіба наступним знаком є0', в такому випадку число вважатиметься вісімковим.

Остаток ланцюжка буде перетворено у значення типу long int у очевидний спосіб, зупиняючись на першому знакові, що не є чинною цифрою в даній системі числення. (В системах більших за десяткову, літера A' верхнього чи нижного регістру позначає 10,B' - 11 і так далі, з `Z', що відповідає 35.)

Якщо значення endptr не дорівнює NULL, strtol() збереже адресу першого ж нечинного знаку в ******endptr.