Хелпикс

Главная

Контакты

Случайная статья





Функции стандартной библиотеки для преобразования строк в числа (заголовочный файл stdlib.h).



Функции стандартной библиотеки для преобразования строк в числа (заголовочный файл stdlib.h).

Преобразование строки в вещественное число

double atof(const char *str);

Преобразует строку, содержащую символьное представление целого или вещественного числа, в соответствующее вещественное число с двойной точностью (типа double). Если преобразование не удалось, возвращает 0.0.

Преобразование строки в целое число

int atoi(const char *str);

Преобразует строку, содержащую символьное представление целого числа, в соответствующее целое число (тип int). Если преобразование не удалось, возвращает 0.

Преобразование строки в длинное целое число

long atol(const char *str);

Преобразует строку, содержащую символьное представление целого числа, в соответствующее длинное целое число (тип long int). Если преобразование не удалось, возвращает 0L.

При выполнении преобразования пробелы и табуляции в начале строки пропускаются. Преобразование прекращается при встрече недопустимого символа (который не может быть интерпретирован как принадлежащий числу) или конца строки.

Если число выходит за пределы диапазона данного типа, переменной errno присваивается значение ERANGE и возвращается допустимое число.

errno (заголовочный файл errno.h) - глобальная целочисленная переменная, используется для обработки ошибок, возникающих при использовании математических функций (может содержать номер ошибки, который дает дополнительную информацию о последней из обнаруженных ошибок).

Макрос ERANGE (заголовочный файл errno.h) задает отличную от нуля целочисленную константу, используемую для фиксации ошибки диапазона.

Пример: заполнение массива типа double из строки:

#include <stdio.h>

#include <string.h>

#inc1ude <stdlib.h>

int main( ){

char s[ ] = “2, 38.5, 70, 0, 0, 1”, *p=s;

double m[10];

int i = 0;

do{

m[i++] = atof(p);

if (i>9) break;

}while (p = strchr(p, ‘,’), p++);

for (int k = 0; k<1; k++) printf (“%5.2f”, m[k]);

return 0;

}



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.