Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

strtod - strtoul - преобразовать из а/ц вида

Описание

      strtod     Преобразует строку ASCII, на которую указы-
                 вает nptr, в значение типа  double. Функция
                 воспринимает  ведущие  табуляции и пробелы,
                 затем возможный знак и далее  строку цифр с
                 необязательной десятичной  точкой.  Функция
                 strtod завершает  считывание строки на пер-
                 вой литере,  не  являющейся  частью  числа.
                 Указатель на эту  литеру  будет  записан по
                 адресу endptr, если endptr не равен NULL.
      strtol     Преобразует ASCII строку, на которую указы-
                 вает nptr,  в длинное  (long)  целое число.
                 Функция воспринимает  ведущие  "пробельные"
                 литеры и далее строку цифр с возможным зна-
                 ком. Функция strtol прекращает чтение стро-
                 ки на первой  литере,  не являющейся частью
                 записи числа. Указатель на эту литеру будет
                 записан по адресу  endptr,  если  endptr не
                 NULL.
                 Если  параметр  base  (основание)  равен 0,
                 первая литера  после  необязательного знака
                 будет определять основание  преобразования.
                 Если эта первая  литера '0',  а вторая - не
                 'x' или 'X',  то такая строка считается за-
                 писью восьмеричного  числа.  Если же первая
                 литера  равна '0',  а вторая - 'x' или 'X',
                 то такая  строка  будет  интерпретироваться
                 как запись шестнадцатеричного  числа.  Если
                 первая литера от '1' до '9',  то строка ин-
                 терпретируется как запись десятичного цело-
                 го. Буквам A-Z нижнего или верхнего регист-
                 ра (т.е.  прописным или заглавным) присваи-
                 ваются  значения от 10  до 35.  Разрешаются
                 только те литеры,  значения  которых меньше
                 чем base. Если  base не равно 0, его значе-
                 ние должно быть между 2 и 36.
      strtoul    Преобразует ASCII строку, на которую указы-
                 вает nptr, в десятичное число типа unsigned
                 long.
                 Описание - аналогично strtol().

Использование

      #include <stdlib.h>
      double strtod(char *nptr, char **endptr);   /* ANSI */
      long strtol(char *nptr, char **endptr, int base);
                                                  /* ANSI */
      unsigned long strtoul(const char *nptr,char **endptr,
                                  int base);      /* ANSI */

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

      strtod     Если корректное значение  вызывает перепол-
                 нение,  в зависимости от знака возвращается
                 плюс или минус HUGE_VAL  и errno устанавли-
                 вается в ERANGE.   Если недопустимая литера
                 встретилась до разрешенных, возвращается 0.
                 При  потере  значимости  возвращается  0  и
                 errno устанавливается в ERANGE.
      strtol     Если корректное значение  вызывает перепол-
                 нение,  в зависимости от знака возвращаются
                 LONG_MAX  или LONG_MIN и errno устанавлива-
                 ется в  ERANGE.   Если  недопустимая литера
                 встречается до разрешенных, возвращается 0.
      strtoul    Если корректное  значение вызывает перепол-
                 нение,  возвращается  значение  ULONG_MAX и
                 errno устанавливается в ERANGE.  Если недо-
                 пустимый символ встречается до разрешенных,
                 возвращается 0.

Пример

      #include <stdio.h>
      #include <stdlib.h>
      char *string, *string2;
      main()
      {
        unsigned long result;
        long result1;
        double result2;
        int base;
        string = "3.1415926Stop here";
        result2 = strtod(string,&string2);
        printf("String [%s] strtod = [%f]\n",
                                   string, result2);
        base = 8;
        string = "1011013";
        result1 = strtol(string, &string2, base);
        printf("String [%s] strtol [%ld] (base 8)\n",
                                            string, result);
        base = 2;
        string = "1011013";
        result = strtoul(string, &string2, base);
        printf("String [%s] strtoul=[%ld] (base 2)\n",
                                            string, result);
      }

Рекомендация

      Смотрите также  atof, atoi, atol.

оглавление

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог