描述
Validate if a given string is numeric.
Some examples:
"0" => true
" 0.1 " => true
"abc" => false
"1 a" => false
"2e10" => true
Note: It is intended for the problem statement to be ambiguous. You should gather all requirements
up front before implementing one.
Validate if a given string is numeric.
Some examples:
"0" => true
" 0.1 " => true
"abc" => false
"1 a" => false
"2e10" => true
Note: It is intended for the problem statement to be ambiguous. You should gather all requirements
up front before implementing one.
#include<iostream>
#include <string>
#include <vector>
using namespace std;
bool ValidNum(string str)
{
bool flag = false;
int posindex = 0;
int negindex = 0;
int dotindex = 0; int dotcount = 0;
int eindex = 0; int ecount = 0;
int length = str.size();
for (int i = 0; i<length; i++)
{
//===
if (str[i] == '+')
{
posindex = i;
if (posindex >= 1)
return flag;
}
if (str[i] == '-')
{
negindex = i;
if (negindex >= 1)
return flag;
}
//===
if (str[i] == '.')
{
dotindex = i;
if (dotindex == 0)
return flag;
dotcount++;
if (dotcount >= 2)
return flag;
}
else if (str[i] == 'e')
{
eindex = i;
ecount++;
if (ecount >= 2)
return flag;
}
else if ('0' <= str[i] && str[i] <= '9')
{
}
else
return flag;
}
//===
if (ecount == 1 && dotcount == 1)
{
if (eindex>dotindex)
return true;
else
return flag;
}
//===
return true;
}
int main()
{
string str = "2.2e10";
bool flag = ValidNum(str);
if (flag)
cout << str << " is a valid num!" << endl;
}