The code is similar to atop but here we also need to check if number is a double. We need to make sure that the string has at most one decimal point.
The key steps in writing an isNumber function are:
- Check for sign(-) after we've checked for whitespace
- Check if each character lies between 0 & 9
- Make note of first decimal encountered.
- Return false if we encounter a second decimal point
- Return false as soon as we see a non numeric character
- Return true otherwise.
bool isNumber(string toTest)
{
int index =0, decimal = 0;
//Checking for sign
if(toTest[index] == '-')
index++;
while(index<toTest.length())
{
int num = toTest[index] - '0';
//Check for numerical digit
if(num >=0 && num <=9)
{
index++;
continue;
}
//Check if character is a decimal point and if its the first decimal point.
else if(toTest[index] == '.')
{
//Number cannot have 2 decimal points so return false.
if(decimal)
return false;
else
decimal = 1;
index++;
}
else
return false;
}
return true;
}
No comments:
Post a Comment