Описание функций Си

Strtol



     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, это будет считаться неверным зна- чением. Если radix36, это будет не- верным значением. Любое неверное значение для 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.

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

#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; }



Содержание раздела