Преобразовать строку в беззнаковое длинное целое число
#include <stdlib.h>unsigned long int strtoul( const char *ptr,char **endptr,int base );unsigned long long strtoull( const char *ptr,char **endptr,int base );
NULL
, функция сохранит в эту переменную первый найденный непреобразуемый символ строки.libc
Функции strtoul() и strtoull() конвертируют строку ptr в объект типа unsigned long
и unsigned long long
соответственно.
Эти функции распознают строки, которые содержат следующее:
Конвертирование прекращается при обнаружении первого непреобразуемого символа. Если endptr не равно NULL
, то указатель на первый такой символ будет сохранен в переменной, на которую уазывает endptr.
Сконвертированное значение.
Если корректные символы в строке приводят к переполнению значения, функция вернет ULONG_MAX
||ULONGLONG_MAX
и установит errno в ERANGE
. Если base вне допустимого диапазона, функция вернет 0
и установит errno в EINVAL
.
#include <stdlib.h>int main( void ){unsigned long int v;v = strtoul( "12345678", NULL, 10 );return (EXIT_SUCCESS);}
ANSI, POSIX 1003.1
atoi(), atol(), errno, itoa(), ltoa(), sscanf(), strtol(), ultoa(), utoa()
Предыдущий раздел: Описание API системной библиотеки