我想将单个整数存储在字符数组的单个索引中。在这种情况下,该itoa
功能不起作用。任何人都可以帮忙吗?
问问题
1887 次
1 回答
7
如果您的意思是要将整数用作字符值并将其放入数组中,那么它只是
array[index] = number;
如果您的意思是要将一位数的值写入数组的特定索引,那么
if (number >= 0 && number < 10) {
array[index] = '0' + number;
} else {
// not representable by a single digit
}
更新:根据您的评论,这可能是您想要的。
如果您的意思是要将数字的十进制表示形式写入数组(涵盖多个字符元素,而不仅仅是一个),请不要使用itoa
,因为这是不标准且危险的。snprintf
可以更安全地做到这一点:
if (snprintf(array, array_size, "%d", number) >= array_size) {
// the array was too small
}
或者,由于这是 C++,您可以使用它std::string
来为您管理内存并确保数组足够大:
std::string string = std::to_string(number);
或者,如果您遇到过时的 C++ 库
std::ostringstream ss;
ss << number;
std::string string = n.str();
如果你的意思是别的,那么请澄清。
于 2012-11-18T22:50:01.523 回答