int itoa(long num,int str,char radix)
//integer to array
//把num转化成相对应的字符串,把结果放在str指向的字符串中,输出字符串的进制取决于radix,它的值可以是2到36的任何值
{
char i,ch,neg;
neg=0;
if(num<0){num=abs(num);neg=1;}
else if(num==0)strcpy(str,"0");
while(num) {
i=num%radix;
num=num/radix;
if(i>=0&&i<=9)ch=i|0x30;
if(i>9&&i<36)ch=i+55;
memmove(str+1,str,strlen(str)+1);
*str=ch;
}
if(neg)
{
memmove(str+1,str,strlen(str)+1);
*str='-';
}
return str;
}
int atoi(int str,char radix)
//array to integer
//把str指向的字符串转化为一个整数,radix为进制.取值为2-36;
{
long num;
int i,sign;
char ch;
num=0;
ch=0xff;
if(*str=='-'){sign=-1;i=1;} else {sign=1;i=0;}
for(;ch;i++)
{
ch=*(str+i);
if(isdigit(ch))num=(num*radix)+(ch&0xf); else if(islower(ch))num=(num*radix)+(ch-87);
else if(isupper(ch))num=(num*radix)+(ch-55);
}
return sign*num;
}
void main()
{
char string[20];
printf(itoa(-78,string,10));
printf("\n%d",atoi("-7788",16));
}