C Linux下的itoa函式

2021-08-24 23:50:11 字數 1103 閱讀 7617

上篇文章說到linux需要itoa函式,下面我就提供乙份跨平台的itoa函式。

//return the length of result string. support only 10 radix for easy use and better performance

int my_itoa(int val, char* buf)

const int radix = 10;

char* p;

int a; //every digit

int len;

char* b; //start of the digit char

char temp;

p = buf;

if (val < 0)

b = p;

do while (val > 0);

len = (int)(p - buf);

*p-- = 0;

//swap

do while (b < p);

return len;

}這個函式會返回字串的長度,在某些場合下會很有用。

我測試了一下,這個函式大概比mfc自帶的itoa要快20%左右。

(因為不需要在迴圈體內判斷if (a > 9)了,所以更快)。

2010/1/8 改進版:

//return the length of result string. support only 10 radix for easy use and better performance

int my_itoa(int val, char* buf)

u = (unsigned int)val;

b = p;

do while (u > 0);

len = (int)(p - buf);

*p-- = 0;

//swap

do while (b < p);

return len;

}改進:將除法運算從有符號整數改為了無符號整數。典型速度從240毫秒左右,提高到了180毫秒左右。作為對比,mfc自帶的itoa耗時是320毫秒左右。

(x86機器做無符號整數的除法要更快一些,彙編指令不同)

C Linux下的itoa函式

上篇文章說到linux需要itoa函式,下面我就提供乙份跨平台的itoa函式。這個函式會返回字串的長度,在某些場合下會很有用。return the length of result string.support only 10 radix for easy use and better perfor...

C linux下實現ls 函式遍歷目錄

需求 在linux下遍歷目錄,輸出目錄中各檔名。include dir opendir const char dir path struct dirent readdir dir dirp int closedir dir dirp int lstat const chat filename,str...

itoa函式的實現

itoa 函式的功能是將乙個整數轉換為乙個字串,例如12345,轉換之後的字串為 12345 123轉換之後為 123 include 反轉字串 char reverse char s return s 功能 整數轉換為字串 char s 的作用是儲存整數的每一位 char my itoa int ...