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