The key steps in writing an atoi function are:
- Check for whitespace at the start of the string
- Check for sign(-) after we've checked for whitespace
- Check if each character lies between 0 & 9
- Break as soon as we see a non numeric character
- Make sure to multiply by sign before returning result
int atoi(const char *text)
{
if(text==NULL || strlen(text)==0)
return 0;
int len = strlen(text), i = 0, sign = 1, num = 0;
//Checking for whitespace
while(text[i] == ' ' || text[i] == '\t' || text[i] == '\n')
i++;
//Checking for sign
if(text[i] == '-')
{
sign=-1;
i++;
}
//Checking for numeric characters
while(i<len)
{
if((text[i] - '0') >=0 && (text[i] - '0') <=9)
{
num = num*10 + (text[i] -'0');
i++;
}
//Stopping when we see non numeric character
else
break;
}
// multiply the number by sign before returning
return num*sign;
}
No comments:
Post a Comment