home *** CD-ROM | disk | FTP | other *** search
/ Atari FTP / ATARI_FTP_0693.zip / ATARI_FTP_0693 / Mint / mntlib32.zoo / ltoa.c < prev    next >
C/C++ Source or Header  |  1993-02-28  |  823b  |  53 lines

  1. #include <string.h>
  2. #include "lib.h"
  3.  
  4. #ifdef __STRICT_ANSI__
  5. #  ifdef __STDC__
  6.     char * strrev(char *);
  7. #  else
  8.     extern char * strrev();
  9. #  endif
  10. #endif
  11.  
  12. char    _numstr[] = "0123456789ABCDEF";
  13.  
  14. char *_ultoa(n, buffer, radix)
  15.     register unsigned long n;
  16.     register char *buffer;
  17.     register int radix;
  18.     {
  19.     register char *p = buffer;
  20.  
  21.     do
  22.         {
  23.         *p++ = _numstr[n % radix];    /* grab each digit */
  24.         }
  25.         while((n /= radix) > 0);
  26.     *p = '\0';
  27.     return(strrev(buffer));            /* reverse and return it */
  28.     }
  29.  
  30. char *_ltoa(n, buffer, radix)
  31.     register long n;
  32.     register char *buffer;
  33.     int radix;
  34.     {
  35.     register char *p = buffer;
  36.  
  37.     if (n < 0)
  38.         {
  39.         *p++ = '-';
  40.         n = -n;
  41.         }
  42.       _ultoa(n, p, radix);
  43.     return(buffer);
  44.     }
  45.  
  46. char *_itoa(n, buffer, radix)
  47.     int n;
  48.     char *buffer;
  49.     int radix;
  50.     {
  51.          return(_ltoa(((long) n), buffer, radix));
  52.     }
  53.