您的位置:首页 > 其它

练习 4-12 运用 printd 函数的设计思想编写一个递归版本的 itoa 函数,即通过递归 调用把整数转换为字符串

2017-11-08 09:10 1521 查看
#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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐