ilikenba 发表于 2004-4-28 22:59

一个判断输入的字符串是否为数字的函数!

bool __fastcall TForm1::isnumber(const AnsiString str)
{
  int m=0;
  int b=str.Length();
  for(int i=1;i<=b;i++)
  {
     char c=str;
     int check=isdigit(c);
     if(check ==0)
     {
       if(c!='.')
         return false;
       else
       {
         m=m+1;
         if(m>1)
           return false;
       }
     }
  }
  return true;
}

libertysigil 发表于 2004-4-30 17:06

<P>这样行不行?</P><P>bool __fastcall TForm1::isnumber(const AnsiString str)</P><P>try {</P><P>IntToStr(str);</P><P>return true;</P><P>}</P><P>castch(...)</P><P>{</P><P>return false;</P><P>}</P>

ilikenba 发表于 2004-4-30 20:45

<DIV class=quote><B>以下是引用<I>libertysigil</I>在2004-4-30 17:06:03的发言:</B>

<P>这样行不行?</P>
<P>bool __fastcall TForm1::isnumber(const AnsiString str)</P>
<P>try {</P>
<P>IntToStr(str);</P>
<P>return true;</P>
<P>}</P>
<P>castch(...)</P>
<P>{</P>
<P>return false;</P>
<P>}</P></DIV>
<P>注意对于一个函数来说,应该做的尽量健壮,你的那个函数利用了VCL的默认异常处理器,但是如果你在析构函数中需要利用这个函数,就不能用你这个函数,因为析构函数很可能就是一个异常引起的,它需要释放一个对象的内存,要是在这里还要引发异常的话,就很难做到了!</P>
页: [1]
查看完整版本: 一个判断输入的字符串是否为数字的函数!