Subversion Repositories Kolibri OS

Rev

Rev 8793 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. #include <string.h>
  2. #include <sys/ksys.h>
  3.  
  4. char* __reverse(char* str)
  5. {
  6.     char tmp, *src, *dst;
  7.     size_t len;
  8.     if (str != NULL) {
  9.         len = strlen(str);
  10.         if (len > 1) {
  11.             src = str;
  12.             dst = src + len - 1;
  13.             while (src < dst) {
  14.                 tmp = *src;
  15.                 *src++ = *dst;
  16.                 *dst-- = tmp;
  17.             }
  18.         }
  19.     }
  20.     return str;
  21. }
  22.  
  23. /* itoa from K&R */
  24. void itoa(int n, char s[])
  25. {
  26.     int i, sign;
  27.  
  28.     if ((sign = n) < 0) /* record sign */
  29.         n = -n; /* make n positive */
  30.     i = 0;
  31.  
  32.     do { /* generate digits in reverse order */
  33.         s[i++] = n % 10 + '0'; /* get next digit */
  34.     } while ((n /= 10) > 0); /* delete it */
  35.  
  36.     if (sign < 0)
  37.         s[i++] = '-';
  38.  
  39.     __reverse(s);
  40.     s[i] = '\0';
  41.     return;
  42. }