#include <stdio.h>
#include <string.h>
#define abs(x) ( (x) > 0 ? (x): -(x))
int itob(int n, char s[], int b);
void reverse(char s[]);
int main(void) {
int number;
char str[1000];
number = -2147483648;
printf("Integer %d printed as\n String:",number);
itob(number,str, 10);
printf("%s",str);
return 0;
}
int itob(int n, char s[], int b){\
int i, sign;
sign = n;
i = 0;
do{
s[i++] = abs(n % b) + ( (n % b >= 0 && n % b <=9) ? '0' : 'a' - 10);
} while((n /= b) != 0);
if( sign < 0)
s[i++] = '-';
s[i]='\0';
reverse(s);
}
void reverse(char s[])
{
int c,i,j;
for(i=0,j=strlen(s)-1;i<j;i++,j--)
c=s[i],s[i]=s[j],s[j]=c;
}