Page 88
Adapt the ideas of printd
to write a recursive version of itoa
; that is, convert
an integer into a string by calling a recursive routine.
#include <stdio.h>
#define MAXSTR 1000
int itoa(int in, char out[], int i);
int main()
{
char out[MAXSTR];
itoa(-1234, out, 0);
printf("%s", out);
}
int itoa(int n, char out[], int i)
{
int sign = 1;
if (n < 0) {
sign = -1;
out[i++] = '-';
}
if (n / 10) {
i = itoa(sign * (n / 10), out, i);
}
out[i++] = sign * n % 10 + '0';
out[i] = '\0';
return i;
}