终于AC啦,刚开始把题想简单了,这题最关键的是要考虑周全所有的可能,最重要的程序结构,这题把程序的逻辑表现的淋漓尽致。是不是提交比例最低的了,有意思,好题。
bool isNumber(const char *s) {
if(s==NULL||*s==0)
return false;
bool flag = false;// 表示.钱是不是有数字
while(*s==' ')
s++;
if(*s=='-'||*s=='+')
s++;
if((*s>'9'||*s<'0')&&*s!='.')
return false;
if (*s>='0'&&*s<='9')
{
flag = true;
while(*s>='0'&&*s<='9')
s++;
if(*s==0)
return true;
}
if(*s=='.')
{
s++;
if (*s==' ')
{
while(*s==' ')
s++;
if(*s==0)
{
if (flag)
return true;//小数点之后可以没有数字,但若是有的话,必须是数字
else
return false;
}
else
return false;
}
if(*s==0)
{
if (flag)
return true;//小数点之后可以没有数字,但若是有的话,必须是数字
else
return false;
}
}
if (*s>='0'&&*s<='9')
{
//if (*s>'9'||*s<'0')
// return false;
flag = true;
while(*s>='0'&&*s<='9')
s++;
if(*s==0)
return true;
}
if (*s=='e'||*s=='E')
{
if (!flag)
return false;
s++;
if(*s=='-'||*s=='+')
s++;
if (*s>'9'||*s<'0')
return false;
while(*s>='0'&&*s<='9')
s++;
if(*s==0)
return true;
}
if (*s==' ')
{
while(*s==' ')
s++;
if(*s==0)
return true;
}
return false;
}

本文介绍了一种判断字符串是否为有效数字的方法,并详细解析了其逻辑结构与关键步骤。通过细致考虑各种边界情况,该方法能够准确判断包括整数、浮点数及科学计数法在内的多种数字形式。

被折叠的 条评论
为什么被折叠?



