数学建模社区-数学中国
标题: 一个判断输入的字符串是否为数字的函数! [打印本页]
作者: ilikenba 时间: 2004-4-28 22:59
标题: 一个判断输入的字符串是否为数字的函数!
bool __fastcall TForm1::isnumber(const AnsiString str)9 `: K h! f+ [/ q3 p) X; E e3 V
{ [; y2 T% ]! A3 D- Q4 s7 _2 z8 n
int m=0;
$ l* g4 r& r) p# E2 G int b=str.Length();7 v/ H M4 _" e& h
for(int i=1;i<=b;i++)) N. u, D+ T7 w }% W
{
2 W4 m* Z- i/ [2 D8 H- t* p c char c=str;' g5 }5 t5 u+ y7 c0 P' s
int check=isdigit(c);4 d2 m; T5 ~9 g6 w
if(check ==0)
9 e1 R% F/ o% _6 T {
$ }6 ?* p- P# Z: `. U, ?# _ if(c!='.')# \- m$ d+ S; E9 O
return false;/ B" z8 A, c, h
else$ Y' c0 O: B A! F' B$ W
{6 I# l! G' Y' E, T: S
m=m+1;
, U, @# q! w. c1 V' [7 j3 T if(m>1)
7 D1 a1 f$ K7 ^: x. i" r4 H L return false;
# v3 }% b. v9 a7 e }" C7 ] U# G U' e4 f
}
+ k5 |; Y3 I A) U5 J5 x }
* L: b: J- M3 C% v6 Y- N return true;* [6 H3 x6 k$ ~- x
}
作者: libertysigil 时间: 2004-4-30 17:06
这样行不行?
bool __fastcall TForm1::isnumber(const AnsiString str)
try {
IntToStr(str);
return true;
}
castch(...)
{
return false;
}
作者: ilikenba 时间: 2004-4-30 20:45
以下是引用libertysigil在2004-4-30 17:06:03的发言:
6 m. Y( v0 @ e
( R5 J) E; K, M3 ~+ Q. S这样行不行?
& }) g8 d3 ]) vbool __fastcall TForm1::isnumber(const AnsiString str)
6 n9 @& P, }+ w" w5 \try {
& U% L; k g1 RIntToStr(str);
2 @2 D) \ {: U: C: M- f1 |+ h& `return true;
7 K5 H4 v- e, D' `* W' O2 l}
5 i+ j8 Z9 S a' E! ]$ u' Y
castch(...)
9 b( g$ G: o, v I, ?
{
: J+ B" S$ Y! Q6 ^3 |/ \return false;
\8 z9 i9 ~6 D+ |% o" K
}
` c' N! Y8 C! d注意对于一个函数来说,应该做的尽量健壮,你的那个函数利用了VCL的默认异常处理器,但是如果你在析构函数中需要利用这个函数,就不能用你这个函数,因为析构函数很可能就是一个异常引起的,它需要释放一个对象的内存,要是在这里还要引发异常的话,就很难做到了!
| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) |
Powered by Discuz! X2.5 |