劍 表示數值的字元

2021-07-10 19:23:59 字數 808 閱讀 8462

請實現乙個函式用來判斷字串是否表示數值(包括整數和小數)。例如,字串"+100","5e2","-123","3.1416"和"-1e-16"都表示數值。

但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。

表示數值的字串遵循如下模式:

[sign]integral-digits[.[fractional-digit]][e|e[sign]exponential-digits]

說明一下:在數值之前可能有正負符號'+',『-』;接下來是若干0-9的數字表示數值的整數部分(在某些小數里可能沒有整數部分)。

如果數值是乙個小數,那麼在小數點後面可能會有若干0到9的數字表示數值的小數部分。

如果數值用科學計數法表示,接下來是乙個『e』或『e』,以及緊跟著乙個整數(可以有正負號)表示指數。

判斷乙個字串是否滿足上述模式,首先看第乙個字元是否為正負符號,如果是在字串往前移動乙個字元,繼續掃瞄字串剩下中0-9的位數,如果是乙個小數,則將遇到小數點,如果是科學計數法,在整數或者小數後面可能會遇到『e』或『e』.

class solution else if(*string=='e'||*string=='e')

else numeric=false;

}return numeric && *string=='\0';

}//判斷是否為整數數字0-9。

void scannum(char **string)

//判斷是否為指數表示法

bool scane(char **string)

};

劍指Offer 表示數值的字串

題目 請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。基本思路 字串應滿足通式a b e ec 或者.b e ec 其中,a c表示有 或無 ...

表示數值的字串 劍指offer

這道題寫起來比較繁瑣,需要考慮 號是否出現在第乙個位置,是否出現一次,以e為分割前後是不是正確的格式,e前可以為浮點數或者整數,e後只能是整數。因此如果把函式分成三個子函式來寫就好多了,乙個函式判斷是不是整數,乙個判斷是不是浮點數,乙個判斷e前後是否合法。include include bool i...

劍指offer 表示數值的字串

請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。本題考查對字串的程式設計能力,我們需要從不同型別的數值中分析規律,要全面考慮數值整數,小數,指...