《剑指offer》:[54]表示数值的字符串
发布时间:2020-12-13 21:12:35 所属栏目:PHP教程 来源:网络整理
导读:题目:请实现1个函数用来判断字符串是不是表示数(包括整数和小数)。 例如,字符串“100”,“5e2”,“⑴23”,“3.1416”及”⑴E⑴6”都表示数,但“12e”,”1a3.14”,”1.2.3”,”⑸”及“12e5.4”都不是。 分析:这个题主要是利用数字的表示通式来解决
题目:请实现1个函数用来判断字符串是不是表示数值(包括整数和小数)。 例如,字符串“+100”,“5e2”,“⑴23”,“3.1416”及”⑴E⑴6”都表示数值,但“12e”,”1a3.14”,”1.2.3”,”+⑸”及“12e+5.4”都不是。 分析:这个题主要是利用数字的表示通式来解决:表示1个数字的通式为: [sign]integral-digits[.[fractional-digits]][e|E[sign]exponential-digits]('['和']'之间的数据都是可有可无的,可省略) 表达的意思是:[符号]整型数字[小数点[小数整数]][e|E[指数的符号]指数的整数表示].依照这个步骤思路来判断就不会错。 看1个字符串是不是符合上述模式时,首先看第1个字符是否是正负号。如果是,在字符串上移动1个字符,继续扫描剩余的字符串中0到9的数位。如果是1个小数,则可能遇到小数点。另外如果是科学计数法,则在小数点的后面可能遇到e|E。 具体实现代码以下: #include <iostream>
using namespace std;
void ScanDigits(char **str) //判断是不是是0⑼之间的数字;
{
while(**str!=' |