Пространства имён
Варианты
Действия

strtol, strtoll

Материал из cppreference.com
< c | string | byte

<metanoindex/>

 
 
 
Нуль-терминированные однобайтовые строки
Функции
Манипуляции с символами
Преобразования в и из числовых форматов
Манипуляции со строками
Исследование строк
Манипуляции с памятью
Разное
 
<tbody> </tbody>
Определено в заголовочном файле <stdlib.h>
long strtol( const char *str, char **str_end, int base );
long long strtoll( const char *str, char **str_end, int base );
(начиная с C99)
Интерпретирует целое значение в строку байт, на который указывает str.
Оригинал:
Interprets an integer value in a byte string pointed to by str.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Отбрасывает любые пробельные символы (определяемые вызовом isspace) до тех пор, пока не будет найден первый непробельный символ, а затем берёт как можно больше символов для формирования действительного по основанию-n (где n=base) представления целых чисел и преобразует их в целочисленное значение. Действительное целочисленное значение состоит из следующих частей:

  • (необязательно) знак плюс или минус
  • (необязательно) префикс (0), указывающий восьмеричное основание (применяется, только если основание равно 8 или 0)
  • (необязательно) префикс (0x или 0X), указывающий шестнадцатеричное основание (применяется, только если основание равно 16 или 0)
  • последовательность цифр.

Набор допустимых значений для системы счисления {0,2,3,...,36}. Набор допустимых цифр для целых чисел с основанием 2 это {0,1}, для целых чисел с основанием 3 равен {0,1,2}, и так далее. Для оснований, превышающих 10, допустимые цифры включают буквенные символы, начиная с Aa для целого числа с основанием 11, до Zz для целого числа с основанием 36. Регистр символов игнорируется.

Дополнительные числовые форматы могут быть приняты текущей установленной локалью C.

Если значение base равно 0, то система счисления определяется автоматически: если присутствует префикс 0, то она восьмеричная, если префикс 0x или 0X, то шестнадцатеричная, иначе десятичная.

Если знак минус был частью входной последовательности, числовое значение, вычисленное из последовательности цифр, инвертируется, как если бы был унарный минус в типе результата.

Функции устанавливает указатель на которую указывает str_end чтобы она указывала на символ после последнего символа интерпретируются. Если str_end является NULL, он игнорируется.
Оригинал:
The functions sets the pointer pointed to by str_end to point to the character past the last character interpreted. If str_end is NULL, it is ignored.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Если str пуст или не иметь ожидаемого форму, преобразование не выполняется, и (если str_end не NULL) значение str хранится в объекте, на который указывает str_end.
Оригинал:
If the str is empty or does not have the expected form, no conversion is performed, and (if str_end is not NULL) the value of str is stored in the object pointed to by str_end.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Параметры

str
указатель с нулевым байтом строки должны интерпретироваться
Оригинал:
pointer to the null-terminated byte string to be interpreted
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
str_end
Указатель на указатель на символ .
Оригинал:
pointer to a pointer to character.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
base
' Из базы интерпретировать целое значение
Оригинал:
base of the interpreted integer value
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

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

  • В случае успеха, целое значение, соответствующее содержание str возвращается.
    Оригинал:
    If successful, an integer value corresponding to the contents of str is returned.
    Текст был переведён автоматически используя Переводчик Google.
    Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
  • Если преобразованное значение выпадает из диапазона соответствующий тип возвращения, диапазон ошибки (настройка errno в ERANGE) и LONG_MAX, LONG_MIN, LLONG_MAX или LLONG_MIN возвращается.
    Оригинал:
    If the converted value falls out of range of corresponding return type, a range error occurs (setting errno to ERANGE) and LONG_MAX, LONG_MIN, LLONG_MAX or LLONG_MIN is returned.
    Текст был переведён автоматически используя Переводчик Google.
    Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
  • Если преобразование не может быть выполнено, 0 возвращается.
    Оригинал:
    If no conversion can be performed, 0 is returned.
    Текст был переведён автоматически используя Переводчик Google.
    Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Пример

См. также

преобразует однобайтовую строку в целочисленное значение
(функция) [править]
преобразует однобайтовую строку в беззнаковое целое значение
(функция) [править]
Документация C++ по strtol, strtoll