home *** CD-ROM | disk | FTP | other *** search
/ Boston 2 / boston-2.iso / DOS / PROGRAM / C / LEX / INTEG.C < prev    next >
Text File  |  1993-12-01  |  506b  |  24 lines

  1. /*
  2.  * integ -- ascii to long (various bases)
  3.  */
  4. long
  5. integ(cp, base)
  6. char *cp;
  7. register int base;
  8. {
  9.         register c;
  10.         long n;
  11.  
  12.         n = 0;
  13.         while (c = *cp++) {
  14.                 if (c>='A' && c<='Z')
  15.                         c += 'a'-'A';
  16.                 if (c>='a' && c<='z')
  17.                         c = (c-'a')+10+'0';
  18.                 if (c < '0' || c > base+'0')
  19.                         break;
  20.                 n = n*base + c-'0';
  21.         }
  22.         return(n);
  23. }
  24.