home *** CD-ROM | disk | FTP | other *** search
/ The Very Best of Atari Inside / The Very Best of Atari Inside 1.iso / sharew / accs / drupatch / rich_lib / itoa.c < prev    next >
Encoding:
C/C++ Source or Header  |  1985-07-21  |  584 b   |  34 lines

  1. /*
  2.  *        'Integer' in Zeichenkette umwandeln
  3. */
  4.  
  5. #include  <define.h>
  6.  
  7. itoa (n, s)
  8. register int   n;
  9. register char  *s;
  10. {
  11.     static int  decimals [] = {10000,1000,100,10};
  12.     register int  *p = decimals, dec, digit, zero = TRUE;
  13.  
  14.     if (n < 0) {
  15.         *s++ = '-';
  16.         n = -n;
  17.     }
  18.     do {
  19.         dec = *p++;
  20.         digit = '0';
  21.         while ((n -= dec) >= 0)
  22.             digit++;
  23.         n += dec;
  24.         if (zero) {                    /* fuehrende Nullen unterdruecken */
  25.             if (digit == '0')
  26.                 continue;
  27.             zero = FALSE;
  28.         }
  29.         *s++ = digit;
  30.     } while (dec > 10);
  31.  
  32.     *s++ = n + '0';                    /* Einerziffer */
  33.     *s = '\0';
  34. }