Vishal Gupta Ответов: 1

Как мне вернуть поплавок из строки


Предположим, у меня есть строка для ex:

Вход: Здравствуйте, 23.78 World строку 64.7

Выход:
23.78
64.7

В этой строке как я буду возвращать числа с плавающей запятой из этой строки пожалуйста помогите закодировать это в c

Что я уже пробовал:

#include<stdio.h>
main()
{
  char c[100];
  char *pc;
  pc = c;
  float i;
  
  gets(c); //getting the string input
  
  while(pc != '\0')
  {
    if(isdigit(*pc)
    {
       i = i * 10 + (*pc - '0');
    }
    pc++;
  }
  printf("%f",i);
}

1 Ответов

Рейтинг:
12

OriginalGriff

Сделайте это в два этапа:
1) Найдите непрерывный ряд из одной или нескольких цифр с необязательной одинарной десятичной точкой. Сохраните указатель на первую цифру / десятичную точку и запишите первый несоответствующий символ нулем.
2) Теперь вы можете использовать ссылка atof - C++ [^] для преобразования значения с помощью указателя, сохраненного на этапе 1.


Vishal Gupta

Пожалуйста, улучшите код, чтобы я мог ясно понять, потому что я не получаю точного смысла.

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

OriginalGriff

Нет! :смеяться:
Это ваше домашнее задание, а не мое - ваш учитель хочет видеть, что вы сделали (и что вы узнали то, чему он учит), а не то, что сделал я.

И вы знаете, что ваш наставник полностью осведомлен о подобных сайтах, так что даже если бы я дал вам "решение", когда вы его передали, он знал бы, что вы его скопировали, а не сделали сами?

Mohibur Rashid

Удачное решение. Мой мозг прыгнул в pcre хе хе