5f7cede5df82696053bdda5f304355f1ecf46c4c
[oweals/cde.git] / cde / programs / dthelp / parser / canon1 / util / itoa.c
1 /* $XConsortium: itoa.c /main/3 1995/11/08 09:52:04 rswiston $ */
2 /* From example in Kernighan and Ritchie, The C Programming Language,
3    Prentice-Hall, 1978 */
4
5 #include <string.h>
6 #include "basic.h"
7
8 char *m_itoa(
9 #if defined(M_PROTO)
10   int n, char *s
11 #endif
12   ) ;
13
14 void reverse(
15 #if defined(M_PROTO)
16   char *s
17 #endif
18   ) ;
19
20 char *m_itoa(n, s)  /* convert n to characters in s */
21 char s[]; 
22 int n;
23 {   
24     int sign ;
25     char *p = s ;
26
27     if ( (sign = n) < 0 ) /* record sign */
28         n = -n;
29     do {    /* generate digits in reverse order */
30         *p++ = (char) (n % 10 + '0') ;
31     }  while (( n/= 10) > 0);
32     if (sign < 0)
33         *p++ = '-';
34     *p = '\0';
35
36     reverse(s);
37     return(s) ;
38 }
39
40 void reverse(s)
41 char s[];
42 {
43     int c, i, j;
44
45     for (i=0, j=strlen(s)-1; i < j ; i++, j--) {
46         c = s[i];
47         s[i] = s[j];
48         s[j] = (char) c;
49     }
50 }