Главная страница
Навигация по странице:

  • Прототип в

  • Возвращаемое

  • Синтаксис

  • Переносимость

  • Назначение

  • Справочник по функциям С++. Подпрограммы классификации Подпрограммы преобразования


    Скачать 3.41 Mb.
    НазваниеПодпрограммы классификации Подпрограммы преобразования
    АнкорСправочник по функциям С++.doc
    Дата07.05.2018
    Размер3.41 Mb.
    Формат файлаdoc
    Имя файлаСправочник по функциям С++.doc
    ТипДокументы
    #18992
    КатегорияИнформатика. Вычислительная техника
    страница111 из 120
    1   ...   107   108   109   110   111   112   113   114   ...   120

    strtod


    -----------------------------------------------------------------
    Назначение Преобразует строку в числовое значение типа

    double.
    Синтаксис #include

    double strtod(const char *s, char **endptr);
    Прототип в stdlib.h
    Замечания strtod преобразует строку символов s в число

    типа double. s является последовательностью

    символов, которая может быть интерпретирована

    как числовое значение типа double; символы дол-

    жны быть сопоставимы со следующим основным фор-

    матом:
    [ws] [sn] [ddd] [.] [ddd] [fmt[sn]ddd]
    где:
    [ws] = необязательные пробелы или табуляции;

    [sn] = необязательный знак (+ или -);

    [ddd] = необязательные цифры;

    [fmt] = необязательные е или Е;

    [.] = необязательная десятичная точка;
    strtod также распознает +INF и -INF как положи-

    тельный и отрицательный инфинитив, а также +NAN

    и -NAN как "нечисло".
    Для примера ниже приведено несколько строк, ко-

    торые функция strod может преобразовать в чис-

    ловое значение типа double:
    +1231.1981 е-1

    502.85Е2

    +2010.952
    strtod прекращает чтение строки, как только ей

    попадается символ, который не может быть интер-

    претирован как составляющая часть числового

    значения типа double.
    Если endptr отлична от нуля, то strtod устанав-

    ливает в endptr значение указателя на символ,

    вызвавший останов анализа строки (*endptr =

    &stopper)
    Возвращаемое strtod возвращает значение s как double. В слу-

    значение чае переполнения возвращается HUGE_VAL.
    Переносимость strtod доступна в UNIX-системах и совместима со

    стандартом ANSI.
    См. также atof

    -----------------------------------------------------------------

    strtok


    -----------------------------------------------------------------
    Назначение Ищет в из первой строке лексемы, которые разде-

    лены любым из символов, входящих во вторую

    строку.
    Синтаксис char *strtok(char *s1, const char *s2);
    Прототип в string.h
    Замечания strtok воспринимает s1 как состоящую из нуля

    или более текстовых лексем, разделенных между

    собой одним или более символом, определенными в

    строке s2.
    Первое обращение к strtok возвращает значение

    указателя на первый символ первой лексемы в s1

    и записывает нулевой символ в s1 непосредствен-

    но за возвращенной лексемой. Последовательность

    обращений с нулевым значением первого аргумента

    приведет к обработке всей строки s1 до исчерпа-

    ния всех лексем.
    Строка разделителей s2 может изменяться от вы-

    зова к вызову.
    Возвращаемое strtok возвращает указатель на лексему, найден-

    значение ную в s1. Когда в s1 не остается больше лексем,

    strtok возвращает нулевой (пустой) указатель.
    Переносимость strtok доступна в UNIX-системах и совместима со

    стандартом ANSI.
    Пример /* Этот пример демонстрирует применение функции

    strtok при разборе даты. Заметим, что для раз-

    бора даты, представленной в различных форматах

    (т.е. 12/3/87; Dec.12,1987; January 15, 1988;

    12-FEB-88 и т.д.), вы должны специфировать

    строку ограничителей содержащую вместе точку,

    запятую, пробел, минус или слеш. Отметим, что

    на выходе разделители не возвращаются. */
    #include

    #include
    main ()

    {

    char *ptr;

    ptr = strtok("FEB.14,1988",". ,-/" );

    while (ptr != NULL)

    {

    printf("ptr = %s\n", ptr);

    ptr = strtok(NULL, ". ,-/");

    }

    }
    Вывод программы
    ptr = FEB

    ptr = 14

    ptr = 1988

    -----------------------------------------------------------------

    strtol


    -----------------------------------------------------------------
    Назначение Преобразует строку в числовое значение типа

    long.
    Синтаксис long strtol(const char *s, char **endptr,

    int radix);
    Прототип в stdlib.h
    Замечания strtol преобразует строку символов s в целое

    значение типа long. s является последователь-

    ностью символов, которая может быть интерпрети-

    рована как числовое значение типа long; она

    должна быть сопоставима со следующим основным

    форматом:
    [ws] [sn] [0] [x] [ddd]
    где:
    [ws] = необязательные пробелы или табуляции;

    [sn] = необязательный знак (+ или -);

    [0] = необязательный ноль (0)

    [x] = необязательный x или X

    [ddd]= необязательные цифры
    strtol прекращает чтение строки как только

    встретит первый нераспознаваемый ею символ.
    Если radix имеет значение между 2 и 36, то це-

    лочисленное значение типа long будет являтся

    выражением с основанием, задаваемым аргументом

    radix. Если значение radix равно 0, то первые

    несколько символов s будут определять основание

    преобразованного числа.
    -----------------------------------------------

    Первый Второй Строка интер-

    символ символ претируется как

    -----------------------------------------------

    0 1-7 восьмиричное

    0 x или X шестнадцатиричное

    1-9 десятичное

    -----------------------------------------------
    Если radix равно 1, то его значение считается

    неверным. Если radix меньше 0 или больше 36, то

    его значение также будет считаться неверным.
    Любые неверные значения radix приводят к тому,

    что результатом преобразования строки будет 0 и

    указатель на следующий символ строки *endptr

    будет установлен в ее начало.
    Если значение в s должно быть интерпретировано

    как восьмиричное, то любые символы вне диапозо-

    на от 0 до 7 не распознаются.
    Если значение в s должно быть интерпретировано

    как десятичное, то любые символы вне диапозона

    от 0 до 9 не распознаются.
    Если значение в s должно быть интерпретировано

    как число с любым другим основанием, то распоз-

    наваться будут только цифры и буквы, используе-

    мые в представлении числа с этим основанием.

    (Например, если radix = 5, то распознаваться

    будут только цифры от 0 до 4; если radix = 20,

    то распознаваться будут только цифры от 0 до 9

    и буквы от A до J.)
    Если endptr отлична от нуля, то strtol устанав-

    ливает в endptr значение указателя на символ,

    вызвавший останов анализа строки (*endptr =

    &stopper)
    Возвращаемое strtol возвращает преобразованное числовое зна-

    значение чение строки или нуль при ошибке.
    Переносимость strtol доступна в UNIX-системах и совместима со

    стандартом ANSI.
    См. также atoi, atof, strtoul

    -----------------------------------------------------------------
    1   ...   107   108   109   110   111   112   113   114   ...   120


    написать администратору сайта