myitoa()函數

來源:互聯網
上載者:User

總結了網上看的一些資料,結合他們各自的優點,修正了一些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;
}
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.