c - Linux中的itoa函数在哪里?

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/

相关文章:

linux - 省略任何 Linux 命令输出的第一行

python - Python 2 如何比较字符串和整数?为什么列表比较大于数字,而元组大于列表?

python - 什么是 "first-class"对象?

linux - 否定 bash 脚本中的 if 条件

python - 如何在不破坏默认行为的情况下覆盖 __getattr__?

bash - 为什么 $$ 返回与父进程相同的 id?

linux - 如何请求文件但不使用 Wget 保存?

python - 使用 groupby 获取组中具有最大值的行

python - 是否可以在没有迭代器变量的情况下实现 Python for range 循环?

python - 获取文件的最后n行,类似于tail