Я получил числа от 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
Похоже, вы ищете sprintf, или, возможно, printf.
int i = 123;
char str[10];
sprintf(str, "%03d", i);
Использовать 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();
Поскольку вы пометили вопрос 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
,