1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#include <stdlib.h> #include <ctype.h> int atoi(const char *s) { int n=0, neg=0; while (isspace(*s)) s++; switch (*s) { case '-': neg=1; case '+': s++; } while (isdigit(*s)) n = 10*n + *s++ - '0'; return neg ? -n : n; }