判断字符串是否是整数或浮点数

判断一个字符串是否是一个整型数或浮点数

两个函数:isNum-判断是否是一个整型数 isFloat-判断是否是一个浮点数

代码:
Code: Select all
bool CUtility::isNum(CString csInput)
{
//将字符串一个一个字符拆出来判断是否是数字
char cTemp;
int nStringLength = csInput.GetLength();
bool bReturnValue = true;

for (int nLoopindex = 0; nLoopindex < nStringLength; nLoopindex++)
{
  //将字符一个一个取出来
  cTemp = csInput.GetAt(nLoopindex);
  if (cTemp >= 0x30 && cTemp <= 0x39)   //在0-9范围之内
  {
   //是数字,什么都不做
  }
  else
  {
   bReturnValue = false;
   break;
  }
}

return bReturnValue;
}

bool CUtility::isFloat(CString csInput)
{
//将字符一个一个取出来
char cTemp;
int nStringLength = csInput.GetLength();
bool bReturnValue = true;  //返回值

int nZhengshu = 0;  //整数有几位
int nXiaoshu = 0;   //小数有几位

bool bReachDot = false;  //是否已经读到小数点了


for (int nLoopindex = 0; nLoopindex < nStringLength; nLoopindex++)
{
  cTemp = csInput.GetAt(nLoopindex);

  if (cTemp >= 0x30 && cTemp <= 0x39)
  {
   if (bReachDot == true)
   {
    nXiaoshu++;
   }
   else
   {
    nZhengshu++;
   }
  }
  else
  {
   //非数字,看看是不是小数点
   if (cTemp == '.')
   {
    if (bReachDot == true)
    {
     //已经碰到过小数点了,又碰到,所以错误
     bReturnValue = false;
     break;
    }
    else
    {
     //碰到小数点了,看看整数部分是不是有了
     bReachDot = true;
     if (nZhengshu > 0)
     {
      //整数部分正确
     }
     else
     {
      //无整数部分,错误
      bReturnValue = false;
      break;
     }
    }
   }
   else
   {
    bReturnValue = false;
    break;
   }
  }
}

return bReturnValue;
}
posted @ 2011-04-10 14:35  super119  阅读(1138)  评论(0编辑  收藏  举报