我想知道是否存在itoa()将整数转换为字符串的替代方法,因为当我在visual Studio中运行它时会收到警告,当我尝试在Linux下构建程序时,我收到编译错误.
我试图找到一个lisp函数来在数字和字符串之间进行转换,经过一些googling后,我喜欢一个具有相同名称的函数.当我进入(itoa 1)SLIME打印时:
Undefined function ITOA called with arguments (1) .
Run Code Online (Sandbox Code Playgroud)
我该如何进行转换?
这可能听起来像一个愚蠢的问题......但我无法找到strconv.Itoa中的"a"实际上代表什么.如果它取一个整数并将其转换为字符串,为什么不是名为Itos的函数?
我最近看了一个样本面试问题:
编写一个函数将整数转换为字符串.假设您无权访问库函数,即itoa()等...
你会怎么做?
为什么这个区别?我已经itoa陷入了可怕的问题,假设进入stdlib.h并最终将自定义版本itoa与不同的原型相关联,从而产生一些疯狂的错误.
那么,为什么itoa不是一个标准功能呢?它出什么问题了?为什么标准偏向其孪生兄弟atoi?
说我有
constexpr const std::uint8_t major = 1;
constexpr const std::uint8_t minor = 10;
constexpr const std::uint8_t bugfix = 0;
Run Code Online (Sandbox Code Playgroud)
而且我要
constexpr const char* version_string(){ ... }
Run Code Online (Sandbox Code Playgroud)
要返回"1.10.0"本例中的等价物,我该怎么做?
我假设我需要这两个,在constexpr:
这个问题纯粹是学术性的,constexpr除了"有可能"之外,我认为实际上没有任何用处.我只是看不出这会如何发展.我愿意接受适用于GCC 4.9和Clang 3.4/3.5的C++ 1y解决方案.
我相信我在日本的一些博客上发现了几乎所有的东西:
我会看到我能用这些做些什么,也许当我对结果感到满意时,我自己回答这个自称有趣的问题.
Visual Studio对我说使用itoa()说法来_itoa()代替?
在我看来,它们是相同的功能.是什么赋予了?
我正在使用我的C++项目中的Ubuntu环境中的Eclipse.
我使用该itoa函数(在Visual Studio上完美运行),编译器抱怨itoa未声明.
我包括<stdio.h>,<stdlib.h>,<iostream>这于事无补.
我正在针对我的itoa()函数运行一些测试用例但是继续进行
did not allocate memory for the int min value
Run Code Online (Sandbox Code Playgroud)
我正在检查,但这是我在这里缺少的东西,它是什么?
char *ft_itoa(int x) {
char *s;
size_t len;
long int n;
n = x;
if (x == -2147483648)
return (ft_strdup("-2147483648"));
len = ft_intlen(n) + 1;
if (!(s = (char*)malloc(sizeof(char) * len)))
return (NULL);
if (n == 0)
s[0] = '0';
if (n < 0) {
s[0] = '-';
n = -n;
}
s[len - 1] = '\0';
while (n) {
len--;
s[len - 1] = (n % 10) + …Run Code Online (Sandbox Code Playgroud) 我正在尝试将整数转换为字符以写入文件,使用以下行:
fputc(itoa(size, tempBuffer, 10), saveFile);
Run Code Online (Sandbox Code Playgroud)
我收到这个警告和消息:
警告: 'itoa'的隐含声明
未定义引用'_itoa'
我已经包含了stdlib.h,并且正在编译:
gcc -Wall -pedantic -ansi
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激,谢谢.