定义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;
}
本文提供了两种不同的itoa函数实现方式,旨在将整型数值转换为字符串形式。第一种实现利用了指针操作和字符串反转技巧;第二种则通过循环处理每一位数字,并逐位构建字符串。这两种方法对于理解C语言中数值与字符串之间的转换机制非常有帮助。
851

被折叠的 条评论
为什么被折叠?



