Я хочу хранить одно целое число в одном индексе массива символов. itoa
функция не работает в этом случае. Кто-нибудь может помочь?
Если вы имеете в виду, что вы хотите использовать целое число как символьное значение и поместить его в массив, то это просто
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();
Если вы имеете в виду что-то еще, то уточните пожалуйста.
Других решений пока нет …