Читайте также:
|
|
В заголовочных файлах <stcnib.h> и <cstcnib> содержатся полезные функции преобразования строк в числа (обратные преобразования можно сделать с помощью
функции sprintf):
int atoi (const char* p) преобразует переданную строку в int;
Функция преобразует строку, содержащую символьное представление целого числа, в соответствующее целое число. Признаком конца числа служит первый символ, который не может быть интерпретирован как принадлежащий числу. Если преобразование не удалось, возвращает 0.
Аналогичные функции преобразования строки в длинное целое число (long) и в вещественное число с двойной точностью (double) называются atol и atof соответственно:
double atof(const char* p) преобразует переданную строку в double;
long atol (const char* p) преобразует переданную строку в long.
Пробелы и табуляции в начале строки пропускаются. Преобразование прекращается при встрече недопустимого символа или конца строки. Если строку нельзя преобразовать в число, возвращается 0. Если число выходит за пределы диапазона данного типа, переменной еrrno (заголовочный файл <сеrrnо>) присваивается
значение ERANGE и возвращается допустимое число.
Примеры:
Пример1 применения функций преобразования:
Пример 2 (программа заполняет массив типа double из строки):
#include <stdio.h>
#1nclude <str1ng.h>
#inc1ude <stdl1b.h>
int ma1n(){
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; к<i; k++) printf(“%5.2f ", m[k]);
return 0;
}
Библиотека предоставляет также различные функции для сравнения строк и подстрок, объединения строк, поиска в строке символа и подстроки и выделения из строки лексем.
Дата добавления: 2015-07-19; просмотров: 89 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Free (s2); | | | Ш. Программа и тестовые примеры |