Как сохранить целое число в одном индексе массива символов?

Я хочу хранить одно целое число в одном индексе массива символов. itoa функция не работает в этом случае. Кто-нибудь может помочь?

-2

Решение

Если вы имеете в виду, что вы хотите использовать целое число как символьное значение и поместить его в массив, то это просто

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();

Если вы имеете в виду что-то еще, то уточните пожалуйста.

7

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]