定义1:
inline char *itoa(int n, char *s)
{
char *sa=s, *p=s+1, t;
n>0 ? p--,n=-n : (*s++="0-"[n<0]);
n = -n;
while (n) {
*s++ = n%10+'0';
n /= 10;
}
*s-- = 0;
//逆向输出字符
while (p<s) {
t = *p;
*p++ = *s;
*s-- = t;
}
return sa;
}
另外一种表述:
char* itoa(int n,char* s)
{
char* ps;
ps=s;
if (n>0)
{
if (n<10)
*ps=n+'0';
if ((n>=10)&&(n<=100))
{
*(++ps)=n%10+'0';
n=n/10;
*(--ps)=n+'0';
}
while (n>0)
{
*(ps)=n%10+'0';
n=n/10;
}
}
++ps;
*(++ps)='/0';
return ps;
}