itoa()
是一个将数字转换为字符串的非常方便的函数.Linux似乎没有itoa()
,有没有等价的功能,或者我必须使用sprintf(str, "%d", num)
?
itoa()
是一个将数字转换为字符串的非常方便的函数.Linux似乎没有itoa()
,有没有等价的功能,或者我必须使用sprintf(str, "%d", num)
?
编辑:对不起,我应该记得这台机器显然是非标准的,出于学术目的插入了各种非标准的libc
实现;-)
正如几位有帮助的 comments 者所提到的,itoa()
确实是非标准的,所以最好使用sprintf(target_string,"%d",source_int)
或(更好的是,因为它不受缓冲区溢出的影响)snprintf(target_string, size_of_target_string_in_bytes, "%d", source_int)
.我知道它不像itoa()
那么简洁或酷,但至少你可以写一次,到处跑(tm);-)
您说默认gcc libc
不包括itoa()
是正确的,就像其他几个平台一样,因为它在技术上不是标准的一部分.更多信息请参见here.注意你必须
#include <stdlib.h>
当然,您已经知道了这一点,因为您可能在另一个平台上使用Linux之后想要在Linux上使用useitoa()
,但是……代码(从上面的链接窃取)如下所示:
Example个
/* itoa example */
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int i;
char buffer [33];
printf ("Enter a number: ");
scanf ("%d",&i);
itoa (i,buffer,10);
printf ("decimal: %s\n",buffer);
itoa (i,buffer,16);
printf ("hexadecimal: %s\n",buffer);
itoa (i,buffer,2);
printf ("binary: %s\n",buffer);
return 0;
}
Output:
Enter a number: 1750 decimal: 1750 hexadecimal: 6d6 binary: 11011010110
希望这有帮助!