itoa()
是一个非常方便的函数,可以将数字转换为字符串。 Linux 好像没有itoa()
,有没有等价的功能还是我必须使用sprintf(str, "%d", num)
?
最佳答案
编辑:对不起,我应该记得这台机器绝对是非标准的,为了学术目的插入了各种非标准的 libc
实现;-)
由于 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 上使用 itoa()
在大概在另一个平台上使用它之后,但是......代码(被盗从上面的链接)看起来像:
示例
/* 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;
}
输出:
Enter a number: 1750 decimal: 1750 hexadecimal: 6d6 binary: 11011010110
希望这会有所帮助!
https://stackoverflow.com/questions/190229/