strtol

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

Синтаксис          #include
                   long strtol(const char *s, char **endptr,
                                                       int radix);

Файл, содержащий   stdlib.h
прототип

Описание           strtol преобразует символьную строку s к длино-
                   му целому значению. Аргумент s - это последова-
                   тельность символов, которые могут быть интерпре-
                   тированы, как длинное целое; они должны соответс-
                   твовать следующему формату:

                           [ws] [sn] [0] [x] [ddd] , где

                           [ws] - необязательный незначащий символ;
                           [sn] - необязательный знак (+ или -);
                           [0]  - необязательный нуль (0);
                           [x]  - необязательный x или X.
                           [ddd]- необязательные цифры.

                   strtol прекращает чтение строки на первом симво-
                   ле, который нераспознан.

                   Если параметр radix лежит в пределах между 2 и
                   36, длинное целое число выражается по основанию
                   radix. Если radix равно 0, первые несколько сим-
                   волов строки s определяют основание преобразуемо-
                   го значения.

                   Первый    Второй   Строка интепретируется, как
                   символ    символ
                     0         1-7       восьмеричное
                     0        x или X    шестнадцатеричное
                    1-9       ----       десятичное

                   Если radix = 1, это будет считаться неверным зна-
                   чением. Если radix<0, это также будет считаться
                   неверным значением. Если radix>36, это будет не-
                   верным значением. Любое неверное значение для
                   radix устанавливает результат в 0 и присваивает
                   указателю на следующий символ *endptr - указатель
                   на начало строки. Если подразумевается, что зна-
                   чение s будет интерпретироваться, как восьмирич-
                   ное, любой символ, кроме цифр от 0 до 7, не будет
                   распознаваться. Если подразумевается, что значе-
                   ние s будет интерпретироваться, как десятичное,
                   любой символ, кроме цифр от 0 до 9, не будет рас-
                   познаваться. Если значение s будет интерпретиро-
                   ваться, как число по любому другому основанию,
                   будут распознаваться только те цифры и буквы, ко-
                   торые имеются в числах по данному основанию.
                   (Например, если radix = 5, будут распознаваться
                   только цифры от 0 до 4; если radix = 20, будут
                   распознаваться цифры от 0 до 9 и буквы от А до
                   J). Если endptr не ноль, strol устанавливает
                   *endptr в указатель на символ, который завершает
                   сканирование (*endptr = &stopper).

Возвращаемое       strtol возвращает значение преобразованной строки
значение           или 0 в случае ошибки.

Переносимость      strtol поддерживается на системах UNIX и совме-
                   стима с ANSI C.

Смотри также        atof atol strtoul
Пример:

#include
#include

int main(void)
{
   char *string = "87654321", *endptr;
   long lnumber;
   /* strtol преобразует строку к длинному целому */
   lnumber = strtol(string,&endptr,10);
   printf("Строка: %s, число: %ld\n",string,lnumber);
   return 0;
}