c语言itob函数

k&r习题3-5,机械工业那本中文答案不咋的,只给了处理10进制以下的参考,本答案摘自网上的那本英文习题解答
/* itob(n,s,b)
 * converts the integer n into a base b char
 */
void itob(int n, char s[], int b)
{
    static char digits[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    int i, sign;
    if ( b < 2 || b > 36 ) {
             fprintf(stderr, "EX3_5: Cannot support base %d\n", b);
                  exit(EXIT_FAILURE);
    }
    if ((sign = n) < 0)
             n = -n;
    i = 0;
    do {
             s[i++] = digits[n % b];
    } while ((n /= b) > 0);
    if (sign < 0)
             s[i++] = '-';
    s[i]='\0';
    reverse(s);

}




转载于:https://my.oschina.net/sukai/blog/313168

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值