Advertisement
Madmouse

strtol

Dec 2nd, 2015
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.51 KB | None | 0 0
  1. long strtol(const char* s)
  2. {
  3.     bool sign = false;
  4.     long i, r, base = 10;
  5.     if(s[1] == 'x')
  6.     {
  7.         s+=2;
  8.         base = 16;
  9.     }
  10.     else if(s[1] == 'b')
  11.     {
  12.         s+=2;
  13.         base = 2;
  14.     }
  15.     if(s[0] == '-')
  16.     {
  17.         s+=1;
  18.         sign = true;
  19.     }    
  20.     for (i = 0, r = 0;s[i] != '\0';++i)
  21.         r = r*base + s[i] - (s[i] >= '0' && s[i] <= '9' ? '0' :
  22.                 s[i] >= 'A' && s[i] <= 'Z' ? ('A' - 10) :  ('a' - 10));
  23.     return (sign ? -r : r);
  24. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement