• myitoa()函数


    总结了网上看的一些资料,结合他们各自的优点,修正了一些bug,写了一个自己的itoa()函数。

    大家可以指出不正之处,共同讨论。

     const char charIndex[]="0123456789ABCDEF";

    void myitoa(int num,char *buf,int radix)
    {
    char temp;
    int i = 0, j = 0;//j指向第一个存有数字字符的字节

    if(num < 0)
    {
    num = -num;//如果是负数,先转换成正数
    if(10 == radix)//如果是十进制,在字符串前面加负号 -
    {
    buf[i++] = '-';
    j = 1;//因为前面多了一个负号,所以 j 加1
    }
    }

    do//依次取出最低位,存储到buf
    {
    buf[i++] = charIndex[num % radix];//取最后一位数转换
    num = num / radix;//删除最后一位

    }while(num > 0);
    buf[i--] = '\0';//最后加上字符串结束符,i自减,指向最后一个存有数字字符的字节

    while(j < i)//此时j指向第一个数字字符,i指向最后一个数字字符,开始交换字符
    {
    temp = buf[i];
    buf[i] = buf[j];
    buf[j] = temp;
    ++j;
    --i;
    }
    }

  • 相关阅读:
    UDP 远程主机强迫关闭了一个现有连接
    CSS float 理解
    C# 启用事务提交多条带参数的SQL语句
    EF学习之DBFirst
    说一说JavaScript 中的原型ProtoType
    Unity
    Unity
    Unity
    Unity
    Godot
  • 原文地址:https://www.cnblogs.com/qmlm8844/p/2781461.html
Copyright © 2020-2023  润新知