題目:請實現乙個函式用來判斷字串是否表示數值(包括整數和小數)。例如,字串「+100」、「5e2」、「-123」、「3.1416」及「-1e-16」都表示數值,但「12e」、「1a3.14」、「1.2.3」、「+-5」及「12e+5.4」都不是。
#includeusing namespace std;
bool scanunsignedinteger(const char** str)
//*str>before表示存在0到9的數字
return *str > before;
}bool scaninteger(const char** str)
return scanunsignedinteger(str);
}bool isnumeric(const char* str)
//1.先檢查整數部分 整數部分為有符號數
bool numeric = scaninteger(&str);
//2.再檢查小數部分 小數部分為無符號數
if (*str == '.')
//3.最後檢查指數部分 指數部分為有符號數
if (*str == 'e' || *str == 'e')
return numeric && (*str == '\0');
}int main()
面試題20 表示數值的字串
題目 請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 0123 都表示數值,但 12e 1a3.14 1.2.3 5 1e 16 及 12e 5.4 都不是。示例 輸入 100 輸出 true 思想 這個題最簡單的做法就是遍歷字串,判斷字串是...
面試題54 表示數值的字串
請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。這道題沒什麼別的技巧,按照數值的表示規則,逐個掃瞄字串,看是否符合要求。數值有如下幾種情況 1...
面試題55 表示數值的字串
題目描述 請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。思路 1 在數值字串的最前面,可能有乙個字元表示 號。正負號之後,注意 如果是字串結...