/* Modified version of itoa; to handle the situation of MIN_INT of limits.h
in the previous number = -2147483648 would fail at n =-n,because the max value of integer is 2147483647
modifying itoa to handle these situations.
sign is stored as the number itself, absolute value of each digit is stored in the string and
while loop is tested not for 0
itoa: convert an integer to string */
#include<stdio.h>
#include<string.h>
#define MAXLINE 1000
#define abs(x) ( (x) > 0 ? (x): -(x))
void itoa(int n
,char s
[]); void reverse(char s[]);
int main(void)
{
int number;
char str[MAXLINE];
/* number=-2345645; */
number = -2147483648;
printf("Integer %d printed as\n String:",number
);
return 0;
}
void itoa(int n
,char s
[]) {
int i,sign;
sign=n;
i = 0;
do
{
}while((n/=10)!=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;
}
LyogTW9kaWZpZWQgdmVyc2lvbiBvZiBpdG9hOyB0byBoYW5kbGUgdGhlIHNpdHVhdGlvbiBvZiBNSU5fSU5UIG9mIGxpbWl0cy5oCmluIHRoZSBwcmV2aW91cyBudW1iZXIgPSAtMjE0NzQ4MzY0OCB3b3VsZCBmYWlsIGF0IG4gPS1uLGJlY2F1c2UgdGhlIG1heCB2YWx1ZSBvZiBpbnRlZ2VyIGlzIDIxNDc0ODM2NDcKCm1vZGlmeWluZyBpdG9hIHRvIGhhbmRsZSB0aGVzZSBzaXR1YXRpb25zLiAKc2lnbiBpcyBzdG9yZWQgYXMgIHRoZSBudW1iZXIgaXRzZWxmLCBhYnNvbHV0ZSB2YWx1ZSBvZiBlYWNoIGRpZ2l0IGlzIHN0b3JlZCBpbiB0aGUgc3RyaW5nIGFuZCAKd2hpbGUgbG9vcCBpcyB0ZXN0ZWQgbm90IGZvciAwCgppdG9hOiBjb252ZXJ0IGFuIGludGVnZXIgdG8gc3RyaW5nICovCgojaW5jbHVkZTxzdGRpby5oPgojaW5jbHVkZTxzdHJpbmcuaD4KI2RlZmluZSBNQVhMSU5FIDEwMDAKCiNkZWZpbmUgYWJzKHgpICggKHgpID4gMCA/ICh4KTogLSh4KSkKCnZvaWQgaXRvYShpbnQgbixjaGFyIHNbXSk7CnZvaWQgcmV2ZXJzZShjaGFyIHNbXSk7CgoKaW50IG1haW4odm9pZCkKewoJaW50IG51bWJlcjsKCWNoYXIgc3RyW01BWExJTkVdOwoKIC8qCW51bWJlcj0tMjM0NTY0NTsgKi8KCQoJbnVtYmVyID0gLTIxNDc0ODM2NDg7CgoJCglwcmludGYoIkludGVnZXIgJWQgcHJpbnRlZCBhc1xuIFN0cmluZzoiLG51bWJlcik7CgoJaXRvYShudW1iZXIsc3RyKTsKCglwcmludGYoIiVzIixzdHIpOwoKCXJldHVybiAwOwp9Cgp2b2lkIGl0b2EoaW50IG4sY2hhciBzW10pCnsKCWludCBpLHNpZ247CgoJc2lnbj1uOwkKCglpID0gMDsKCglkbwoJewoJCXNbaSsrXT0gYWJzKG4lMTApICsgJzAnOwoJCgl9d2hpbGUoKG4vPTEwKSE9MCk7CgkKCWlmKCBzaWduIDwgMCkKCQlzW2krK109Jy0nOwoKCXNbaV09J1wwJzsKCglyZXZlcnNlKHMpOwp9Cgp2b2lkIHJldmVyc2UoY2hhciBzW10pCnsKCWludCBjLGksajsKCglmb3IoaT0wLGo9c3RybGVuKHMpLTE7aTxqO2krKyxqLS0pCgkJYz1zW2ldLHNbaV09c1tqXSxzW2pdPWM7Cn0KCQo=