#include <stdio.h>
/*Stat:founded in 2017.11.8*/
char *itoa(char *s,int n,int base)
{
char *p,*q;
unsigned number;
q = "0123456789abcdefghijklmnopqrstuvwxyz"; /*有点小瑕疵:最后返回指针的逆序 (求修改)*/
if(base == 0)
base = 10;
if(s == NULL || base < 2 || base > 36)
return NULL;
p = s;
if(n < 0)
{
*p++ = '-';
number = -n;
}
else
number = n;
if(number / base)
p = itoa(p,number / base,base);
*p = q[number % base];
*(++p) = '\0';
return p;
}
int main(void)
{
char s[100];
int n,b;
while(scanf("%d%d",&n,&b))
{
itoa(s,n,b);
printf("%s\n",s);
}
return 0;
}
/*Stat:founded in 2017.11.8*/
char *itoa(char *s,int n,int base)
{
char *p,*q;
unsigned number;
q = "0123456789abcdefghijklmnopqrstuvwxyz"; /*有点小瑕疵:最后返回指针的逆序 (求修改)*/
if(base == 0)
base = 10;
if(s == NULL || base < 2 || base > 36)
return NULL;
p = s;
if(n < 0)
{
*p++ = '-';
number = -n;
}
else
number = n;
if(number / base)
p = itoa(p,number / base,base);
*p = q[number % base];
*(++p) = '\0';
return p;
}
int main(void)
{
char s[100];
int n,b;
while(scanf("%d%d",&n,&b))
{
itoa(s,n,b);
printf("%s\n",s);
}
return 0;
}
这是一个使用递归方法编写的 C 语言 itoa 函数,将整数转换为字符串。函数接受一个字符数组、整数 n 和基数,通过递归调用来完成转换。在主函数中,程序读取两个整数并调用 itoa 函数,然后打印转换后的字符串。
820

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



