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