Дана строка. Если она представляет собой запись целого числа, то вывести 1 - C (СИ) (73459)
Формулировка задачи:
Дана строка. Если она представляет собой запись целого числа, то вывести 1; если вещественного (с дробной частью), то вывести 2; если строку нельзя преобразовать в число, то вывести 0.
Помогите , пожалуйста. Бьюсь бьюсь над этой задачей и даже не могу понять как ее делать. 1 курс. Прошли самое элементарное. И такое же простое, значит, должно быть решение. Если кому не сложно, хотя бы подкиньте идей.
А то я теряюсь в догадках =((((((((
Решение задачи: «Дана строка. Если она представляет собой запись целого числа, то вывести 1»
textual
Листинг программы
int GetNumType(const char * p) { int float_sep = 0; // количество найденных разделителей в строке if (*p == '\0') return 0; // если пустая строка то сразу же выходим for (;*p; ++p) { // для каждого символа в строке if (*p >= '0' && *p <= '9') continue; // если текущий символ один из "0..9" то // начинаем новую итерацию if (*p != '.') return 0; // иначе если текущий символ не равен '.' // то делаем вывод что строка не может быть // представлена числом ++float_sep; // иначе увеличиваем кол-во разделителей } // конец цикла for() if (float_sep == 0) // если во всей строке мы не нашли не одного return 1; // разделителя '.' то делаем вывод что число int if (float_sep == 1 && p[-1] != '.')// если был найден только один разделитель return 2; // и последний символ в строке не является разделителем // то числов вещественное return 0; // иначе нельзя преобразовать в число }
Объяснение кода листинга программы
Список элементов:
- *p - указатель на текущий символ в строке
- '\0' - символ-маркер конца строки
- float_sep - переменная для подсчета разделителей в строке
- '0'..'9' - символы, которые могут встречаться в числе
- '.' - символ, обозначающий десятичную дробь в числе
- 0 - возвращаемое значение, если строка пустая
- 1 - возвращаемое значение, если в строке нет разделителей '.'
- 2 - возвращаемое значение, если в строке есть только один разделитель '.'
- 0 - возвращаемое значение, если строка не может быть преобразована в число
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д