【问题标题】:Which library do I have to download in order to get itoa() in C [duplicate]我必须下载哪个库才能在 C 中获取 itoa() [重复]
【发布时间】:2015-06-15 03:38:37
【问题描述】:

我想在 C 中使用 itoa() 。我必须下载哪个库?

我宁愿包含一个特定的库而不是使用我自己的代码,但这可能是错误的。

我看过几个如何使用itoa()的例子,但我的问题是如何获取库文件。

【问题讨论】:

  • 您应该首先考虑可移植性,以及模仿itoa() 功能是多么容易。
  • @hacks 是 itoa() 标准吗?
  • @iharob;不,它不是 ANSI C 标准函数。删除我的评论
  • 看看here
  • 您使用的是哪个操作系统和编译器?

标签: c itoa


【解决方案1】:

itoa 不是 ANSI-C 的一部分。它也不是任何 POSIX 标准的一部分。例如,在 Linux + gcc 上,itoa 出现在 stdlib.h 中。在此类平台上包含 stdlib.h(如 cmets 的某一阶段所建议的)不会解决您的问题:

 $ grep -w -R itoa /usr/include
 $

不,它不存在!

不要使用itoa。相反,使用可移植的东西,例如 snprintf 或(如果你只使用 gcc 没问题)asnprintf

如果你坚持使用itoa,那么#include <stdlib.h>或许会有所帮助;如果是这样,您的问题的答案将是在那个平台上它是标准 C 库的一部分,而不是您需要下载的库。如果它不起作用,那么它不是标准 C 库的一部分,您应该改用可移植的解决方案。

另外,无论如何都要警惕itoa。来自互联网上的random man page

itoa 不会为字符串分配新的内存空间,而是返回一个指向发生转换的内部缓冲区的指针

itoa 不是可重入的(因此不是线程安全的),像第一个 here 这样的解决方案在保持相同 API 的同时也不能。更好的解决方案是这里的第二个答案:Where is the itoa function in Linux?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-11
    • 1970-01-01
    • 2018-10-20
    • 2019-01-04
    • 2020-05-06
    • 2015-12-13
    相关资源
    最近更新 更多