劍指offer 表示數值的字串

2021-09-25 13:01:38 字數 1476 閱讀 8177

題目描述

請實現乙個函式用來判斷字串是否表示數值(包括整數和小數)。例如,字串"+100",「5e2」,"-123",「3.1416"和」-1e-16"都表示數值。 但是"12e",「1a3.14」,「1.2.3」,"±5"和"12e+4.3"都不是。

思路:大體是分為三部分的整數、小數、帶e的數,具體的判斷方法在**中

class solution if(

*string==

'\0')if

(*string==

'+'||

*string==

'-')if(

*string==

'\0'

)//跳過加減之後沒了

while

(*string!=

'\0'

) string++;}

return true;

} bool isfloat

(char

* string)

//小數if(

*str==

'-'||

*str==

'+')if(

*str==

'\0'

)int count=0;

while

(*str!=

'\0')if

(*str==

'.')

} str++;}

if(count==1)

return false;

} bool isnumeric

(char

* string)if(

isinteger

(string))if

(isfloat

(string)

)//判斷是不是帶e的數

char front[

100]

;//在e之前的數

char back[

100]

;//在e之後的數

char

*str = string;

int index=0;

//e的下標

while

(*str!=

'\0'

) str++;}

if(index<=1)

str = string;

int i=0;

while

(ifront[i]

='\0'

;strcpy

(back,str+1)

;if(isinteger

(front)

&&isinteger

(back))if

(isfloat

(front)

&&isinteger

(back)

)return false;}}

;

有些繁瑣啊。。。

劍指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 都不是。本題考查對字串的程式設計能力,我們需要從不同型別的數值中分析規律,要全面考慮數值整數,小數,指...