преобразование типов — c ++ преобразование int в char + добавление начальных нулей в char

Я получил числа от 0 до 999. Как я могу добиться следующего

int i = 123;//possible values 0-999
char i_char[3] = /*do conversion of int i to char and add 3 leading zeros*/

Примеры): i_char будет выглядеть "001" за i=1, "011" за i=11 или же "101" за i=101

-6

Решение

Похоже, вы ищете sprintf, или, возможно, printf.

int i = 123;
char str[10];
sprintf(str, "%03d", i);
1

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

Использовать std::ostringstream с std::setfill() а также std::setw()Например:

#include <string>
#include <sstream>
#include <iomanip>

int i = ...;
std::ostringstream oss;
oss << std::setfill('0') << std::setw(3) << i;
std::string s = oss.str();
5

Поскольку вы пометили вопрос c++ вот быстрое решение с использованием std::string а также std::to_string:

#include <iostream>
#include <string>

int main() {
int i = 1;
std::string s = std::to_string(i);

if ( s.size() < 3 )
s = std::string(3 - s.size(), '0') + s;

std::cout << s << std::endl;

return 0;
}

За i=1 это выведет: 001,

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