strtol(), strtoll()

Преобразовать строку в длинное целое число

Прототип:

#include <stdlib.h>
long int strtol( const char *ptr,
char **endptr,
int base );
long long strtoll( const char *ptr,
char **endptr,
int base );

Аргументы:

ptr
Указатель на анализируемую строку.
endptr
Если данный аргумент не равен NULL, функция сохранит в эту переменную первый найденный непреобразуемый символ строки.
base
База (основание, система счисления) анализируемого числа:

Библиотека:

libc

Описание:

Функции strtol() и strtoll() конвертируют строку ptr в объект типа long int и long long соответственно.

Эти функции распознают строки, которые содержат следующее:

Конвертирование прекращается при обнаружении первого непреобразуемого символа. Если endptr не равно NULL, то указатель на первый такой символ будет сохранен в переменной, на которую уазывает endptr.

Возвращаемое значение:

Сконвертированное значение.

Если корректные символы в строке приводят к переполнению значения, функция вернет LONG_MAX || LONGLONG_MAX или LONG_MIN || LONGLONG_MIN, в зависимости от знака и установит errno в ERANGE. Если base вне допустимого диапазона, функция вернет 0 и установит errno в EINVAL.

Примеры:

#include <stdlib.h>
int main( void )
{
long int v;
v = strtol( "12345678", NULL, 10 );
return (EXIT_SUCCESS);
}

Классификация:

ANSI, POSIX 1003.1

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Да
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

atoi(), atol(), errno, itoa(), ltoa(), sscanf(), strtoul(), ultoa(), utoa()




Предыдущий раздел: Описание API системной библиотеки