Пятница - 23.04.2021 - 08:45:55
1761
0
   Очень часто встречается такая ситуация, что нужно определить является ли строка числом. В Builder C++ нет «родной» функции, которая бы производила такую операцию, поэтому приходится пользоваться своими функциями. Каждый программист пытается по-своему решить эту проблему, не «обминула и меня чаша сия». На всеобщий суд выкладываю две функции, которые определяют тип строки - int или float. Функции написал мой друг Литвин Владимир, которые у меня работают безотказно.

8. Является ли строка числом

 
//-------------------------------------------------------
bool IsIntDigital(String thisString)
{
 if(thisString.IsEmpty()) return 0;
 for(int i = 1; i<=thisString.Length(); i++)
 {
  if(i == 1 && thisString[i] == '-') continue;
  if(!isdigit(int(thisString[i]))) return 0;
 }
 return 1;
}
//-------------------------------------------------------
bool IsFloatDigital(String thisString)
{
 if(thisString.IsEmpty()) return 0;
 bool bPoint = 0;
 for(int i = 1; i<=thisString.Length(); i++)
 {
  if(i == 1 && thisString[i] == '-') continue;
  if(!bPoint && thisString[i] == ','&& i>1 && icontinue;}
  if(!isdigit(int(thisString[i]))) return 0;
 }
 return 1;
}
//---------------------------------------------------------------------------