type conversion-c++将int转换为char+将前导零添加到char

type conversion - c++ converting int to char + add leading zeros to char

本文关键字:添加 char char+ conversion-c++ int 转换 type      更新时间:2023-10-16

我得到了从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=1i_char应类似于"001",对于i=11"011"或对于i=101"101"

std::ostringstreamstd::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();

您似乎在寻找sprintf,或者printf。

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

因为您用c++标记了这个问题,所以这里有一个使用std::stringstd::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