判断一个字符是否是字母和数字的函数是什么?(50分)

  • 主题发起人 主题发起人 savetime
  • 开始时间 开始时间
S

savetime

Unregistered / Unconfirmed
GUEST, unregistred user!
第一个回答正确者得分
 
你可以使用StrToFloat将字符串转换为数,
如果该字符串不是数字,会产生EConvertError异常。
 
function test(a:string):boolean;//结果true代表是数字,否则是字符
begin
try
strtofloat(trim(a));
result:=true;
except
result:=false

end;
end;

方法有点笨,应该可行。
 
if '字符'< 0 or '字符' > 9 then
该字符不是数字
 
if c in ['a'..'z','A'..'Z'] then
字母;
if c in ['0'..'9'] then
数字

 
IF ord(c)>47 and ord(c)<58 then
字符
 
if (CompareStr(c,'0')>=0) and (CompareStr(c,'0')<=9) then 数字
..........................................................字母
 
var
c : char;
begin
c := '9';
if IsCharAlphaNumeric(c) then
begin
if not IsCharAlpha(c) then
ShowMessage('数字');
end;
end;
是字符与数据集合中,但不是字符集合中,就是答案了
 
同意pengjinlongex的答案。
 
转换成ASCII,利用ACSII值判断就可以了!
 
自己写完后,感到不爽,D不会这么不讲人情吧,结果一查,嘿,
function IsNumeric(c: char): Boolean;就行了,只要,
uses IdGlobal就行.我相信,我不是最先答出来的,但,这却是最正宗的!


 
认同:IF ord(c)>47 and ord(c)<58 then......
这才是正宗.这才是原理.
 
to qq
我在D5中找不到IdGlobal
但记得有个像Is...的函数,我就是要这个。
 

copy给你


function IsNumeric(c: char): Boolean;
begin
Result := Pos(c, '0123456789') > 0
{do not localize}
end;
 
没有现成的函数
自己动手做一个不就成了
这么简单的问题还要人教
真懒得压
 
同意QQ的答案,把分给他吧,呵呵
 
接受答案了.
 
后退
顶部