今天在Ubuntu下編程,發現Linux內核中只有atoi()函數,被包含在stdlib.h頭文件中,而沒有itoa()函數,不過,itoa()函數的功能可以用sprintf()函數代替。如
int nValue = 80;
char* szBuffer = (char *)malloc(sizeof(int) + 1); //分配動態內存
memset(szBuffer, 0, sizeof(int) + 1); //內存塊初始化
sprintf(szBuffer, "%d", nValue); //整數轉化為字符串
free(szBuffer); //釋放動態分配的內存
sprintf 跟printf 在用法上幾乎一樣,只是打印的目的地不同而已,前者打印到字符串中,後者則直接在命令行上輸出。這也導致sprintf 比printf 有用得多。
sprintf 是個變參函數,定義如下:
int sprintf( char *buffer, const char *format [, argument] ... );
除了前兩個參數類型固定外,後面可以接任意多個參數。而它的精華顯然就在第二個參數:
格式化字符串上。
sprintf 最常見的應用之一莫過於把整數打印到字符串中,所以 spritnf 在大多數場合可以替代 itoa。
C語言梳理一下,分布在以下10個章節中:
C++ Primer Plus 第6版 中文版 清晰有書簽PDF+源代碼 http://www.linuxidc.com/Linux/2014-05/101227.htm