请问 如何判断 一个字符串 只含有 数字
请问 如何判断 一个字符串 只含有 数字
我想转换一个字符串 到int
但是 如果有其它他不认得字符 就会报错
我想先判断这个字符串是指含有数字的字符串
改如何办
谢谢
问题点数:0、回复次数:11Top
1 楼ddeng(登登)回复于 2003-08-03 16:59:20 得分 0
try {
}
catch(...) {
}Top
2 楼Dala(Dala)回复于 2003-08-03 17:24:47 得分 0
bool NotAllNum = false;
AnsiString S = "123";
try{StrToInt(S);}catch(...){ NotAllNum = true; }Top
3 楼kingfish(工作很忙,很少来csdn...)回复于 2003-08-03 17:27:52 得分 0
s.ToIntDef(0);Top
4 楼Atomictry(天影)回复于 2003-08-03 17:31:50 得分 0
看这样行不行:
double a;
try
{
a=StrToFloat(Edit1->Text);
}
catch(EConverError &e)
{
ShowMessage("输入错误");
}
Top
5 楼sfemil(心洋)回复于 2003-08-03 17:53:25 得分 0
没有想到大家都在使用这种方法。的确也没有其他更好的方法了。Top
6 楼Adayuer(饭碗饭碗饭碗你在哪里?)回复于 2003-08-03 21:40:26 得分 0
这应该算是相对简单的方法。Top
7 楼hy1080(老神经病)回复于 2003-08-03 21:47:10 得分 0
我想 kingfish(八百里秦川@龙城异客)的办法不错,我也一直在找,
以前用C的函数来解决,后来也用那个了,
不过应当加一些判断,
比如设成一个不“应当”的整数,
如果得到这个就错了,这样就可以不用异常了。
我见了异常就头痛,、~~~~~~~~~~~~~~~~~~~~~~~Top
8 楼Santos(快乐的GG)回复于 2003-08-03 23:21:25 得分 0
使用函数,这样可以屏蔽掉转换错误 :)
如:
bool IsNum(AnsiString str,int* num)
{
try
{
*num = StrToInt(str);
}
catch(...)
{
*num = 0;
return false;
}
return true;
}
Top
9 楼KKNDzhou(KKND)回复于 2003-08-04 00:03:59 得分 0
#include <stdlib.h>
find_not_first(" 你要判断的字符",:0123456789);Top
10 楼kinglon(晶龙)回复于 2003-08-04 00:38:52 得分 0
AnsiString asStr="0123456789";
bool bIsNum=false;
char *cStr=new char[asStr.Length];
for(int i=0;i<asStr.Length;i++)
{
cStr++
if(cStr>47&&cStr<58)
{
bIsNum=true;
}
else
{
bIsNum=false;
}
}
最后如果bIsNum是true,就是所有的字符串都是数字了
(酒后之言啊~~~~~)Top
11 楼yjy1001(蓝鲸--优秀得郁闷的鱼)回复于 2003-10-23 10:08:17 得分 0
可以这样:
AnsiString str;
int i=StrToIntDef(str,0);
str为任意字符,不受限制,而且不会出错Top



