itoa 原函数

itoa 在linux下不能使用

void   itoa   (   unsigned   long   val,   char   *buf,   unsigned   radix   )   
{   
                char   *p;                                 /*   pointer   to   traverse   string   */   
                char   *firstdig;                   /*   pointer   to   first   digit   */   
                char   temp;                             /*   temp   char   */   
                unsigned   digval;                 /*   value   of   digit   */   

                p   =   buf;   
                firstdig   =   p;                       /*   save   pointer   to   first   digit   */   

                do   {   
                        digval   =   (unsigned)   (val   %   radix);   
                        val   /=   radix;               /*   get   next   digit   */   

                        /*   convert   to   ascii   and   store   */   
                        if   (digval   >   9)   
                                *p++   =   (char   )   (digval   -   10   +   'a ');     /*   a   letter   */   
                        else   
                                *p++   =   (char   )   (digval   +   '0 ');               /*   a   digit   */   
                }   while   (val   >   0);   

                /*   We   now   have   the   digit   of   the   number   in   the   buffer,   but   in   reverse   
                      order.     Thus   we   reverse   them   now.   */   

                *p--   =   '\0 ';                         /*   terminate   string;   p   points   to   last   digit   */   

                do   {   
                        temp   =   *p;   
                        *p   =   *firstdig;   
                        *firstdig   =   temp;       /*   swap   *p   and   *firstdig   */   
                        --p;   
                        ++firstdig;                   /*   advance   to   next   two   digits   */   
                }   while   (firstdig   <   p);   /*   repeat   until   halfway   */   
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值