Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование / WORD / Лекции по ЯП (часть 3).doc
Скачиваний:
138
Добавлен:
15.04.2015
Размер:
1.34 Mб
Скачать

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

Для преобразования строк в числа используются четыре функции. Их прототипы объявлены в заголовочном файле stdlib.h.

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

Для преобразования строки в целочисленное значение используется библиотечная функция atoi(). Ее прототип имеет вид:

int atoi(const char *ptr);

Функция atoi() преобразует строку ptr в целое число, соответствующее представлению. Кроме цифр, строка может содержать пробелы в начале, а также знак + или –. Преобразование начинается с первого символа строки и продолжается до тех пор, пока встретится недопустимый в числе символ (например, буква или знак препинания). Полученное целое число возвращается в вызывающую программу. Если функция atoi() не находит в строке символов, пригодных для преобразования в число, то возвращает 0.

Примеры.

Строка

Значение, возвращаемое функцией atoi()

"157"

157

"-1.6"

-1

"+50х"

50

"twelve"

0

"х506"

0



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

Библиотечная функция atol() полностью аналогична atoi(), но возвращает значение типа long. Прототип функции имеет следующий вид:

long atol(const char *ptr);

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

Функция atoll() аналогична по своему назначению функциям atoi() и atol(), но преобразует строки в значения типа long long. Она имеет следующий прототип:

long long atoll(const char *ptr);

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

Для преобразования строк в вещественные числа с плавающей точкой (double) использу­ется функция atof(). Она имеет следующий прототип:

double atof (const char *str);

Аргумент str указывает на преобразуемую строку. Она может содержать пробелы перед началом числа, а также знак + или -. Число может состоять из цифр от 0 до 9, десятичной точки, а также знака показателя степени е или Е.

Если в строке не найдены символы, пригод­ные для преобразования в число, atof() возвращает 0.

Примеры

Строка

Значение, возвращаемое функцией atof()

"12"

12.000000

"-0.123"

-0.123000

"12E+3"

123000.000000

"123.1e-5"

0.001231


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

Прототипы функций объявлены в заголовочном файле stdlib.h.

Преобразование целого числа в строку itoa()

char *itoa (int Значение, char *Строка, int Основание);

Число изображается в указанной при вызове функции системе счисления.

Строка — указатель на строку, куда будет помещено изображе­ние числа.

Основание — задает основание системы счисления (от 2 до 36).

Максимальная длина строки, формируемой функцией itoa -17 байт.

Преобразование длинного целого числа в строку ltoa()

char *ltoa (long Значение, char *Строка, int Основание);

Максимальная длина строки, формируемой функцией ltoa -33 байт.

Преобразование длинного беззнакового целого числа в строку ultoa()

char *ultoa (unsigned long Значение, char *Строка, int Основание);

Максимальная длина строки, формируемой функцией ultoa -33 байт.

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

Для преобразования вещественных чисел с плавающей точкой (double) в строку использу­ется функция gcvt(). Она имеет следующий вид:

char *gcvt(double Значение, int Цифр, char *Строка);

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