在标准C中将int转换为字符串

836

我是C的新手。

我正在寻找一个示例,在其中我可以调用一个函数以转换int为字符串。我发现了,itoa但这不是标准C的一部分。

我也发现了,sprintf(str, "%d", aInt);但问题是我不知道所需str的大小。因此,如何为输出字符串传递正确的大小

塞尔比

有最佳的方法来适当调整数组大小以解决in的变化sizeof(int),但乘以4对于10为基就足够了sizeof(int)==1

int x; // assign a value to x
char buffer[sizeof(int) * 4 + 1];
sprintf(buffer, "%d", x);

如果需要从函数返回指向字符串的指针,则应该分配缓冲区而不是使用堆栈存储器:

char* integer_to_string(int x)
{
    char* buffer = malloc(sizeof(char) * sizeof(int) * 4 + 1);
    if (buffer)
    {
         sprintf(buffer, "%d", x);
    }
    return buffer; // caller is expected to invoke free() on this buffer to release memory
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章