我是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] 删除。
我来说两句