53 表示數值的字串

2021-09-27 18:46:11 字數 967 閱讀 2727

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

【分析】

表示數值的字串模式:

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

[正負號] 0-9的數 [ . [ 0-9小數 ] ] [ e或e [ 正負號 ] 數字 ]

-8.321e-16 表示 -8.321乘以e的負16次方;
首先看第乙個字元是不是正負號,然後移動一位,是否為0-9數字,再移動一位,有小數點的在判斷小數點後0-9,然後是e/e以此檢驗。

class solution 

}else if(*string=='e'||*string=='e')//沒有小數點說明為整數,直接判斷e或e

else//

temp = false;

}return temp && *string == '\0';//字串結尾『\0』

}private:

/*掃瞄數字,對於合法數字,直接跳過*/

void scandigits(char** string)

}/*判斷科學計數法表示的數值的結尾部分是否合法*/

bool i***ponential(char** string)

if(**string == '\0')

scandigits(string);

// 判斷是否結尾,如果沒有結尾,說明還有其他非法字串

return (**string == '\0') ? true : false;

}};

53 表示數值的字串

請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。正規表示式 字元集合 分組 重複 0 1 次 重複 1 n 次 重複 0 n 次 任意字元 轉...

53 表示數值的字串

題目描述 請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。class solution 幾個關鍵點 1.基本邊界。string null st...

53 表示數值的字串

一 題目描述 請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。二 題解 分情況討論,返回true的情況不易列舉,但符合以下6種情況必返回fal...