int _atoi (const char * str, int base)
{
  int val = 0, i, j = 1;
  int digit, sign = 0;
  int len = strlen (str);
  if (len > 1) {
    if (str[0] == '-') {
      sign = 1;
10        str++;
11        len--;
12      } else if (str[0] == '+') {
13        sign = 0;
14        str++;
15        len--;
16      } else {
17        sign = 0;
18      }
19    }
20    for (= (len - 1); i >= 0; i--)
21    {
22      if ((str[i] >= '0') && (str[i] <= '9')) {
23        digit = str[i] - '0';
24      } else if ((str[i] >= 'A') && (str[i] <= 'F')) {
25        digit = str[i] - 'A';
26      } else if ((str[i] >= 'a') && (str[i] <= 'f')) {
27        digit = str[i] - 'a';
28      } else {
29        break;
30      }
31      val += (digit * j);
32      j *= base;
33    }
34    if (sign) {
35      val *= -1;
36    }
37    return val;
38  }
39  int main(int argc, char* argv[])
40  {
41    char num [10];
42    int i = _atoi ("-102", 10);
43    printf ("Number : %d\n", i);
44  }
45 

You have viewed 1 page out of 248. Your C learning is 0.00% complete. Login to check your learning progress.

 Vote 0

Similar topics related to this section

char array and char pointers, const char *,char * const, const char * const, alpha numeric, palindrome, convert case, string to int, int to string, reverse decimal digits, signed and unsigned compare,

# C Programming Language (Prentice Hall Software)
# Let Us C Paperback - 2006 by Yashavant Kanetkar
# Understanding and Using C Pointers Core techniques for memory management
# Data Structures Using C and C++ Paperback - 1998
# Data Structures In C Paperback - August 11, 2008 by Noel Kalicharan