一个判断输入的字符串是否为数字的函数!
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;
} <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 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]