我有一个包含1-4位数字的整数x
。如何将其转换为4个字符的数字数组(必要时用零填充)?也就是说,如果x
为4
,我希望字符数组y
包含0004
答案 0 :(得分:4)
// Assume x is in the correct range (0 <= x <= 9999)
char target[5];
sprintf(target, "%04d", x);
答案 1 :(得分:2)
好吧,如果您确保向量中只有4个元素,我认为您可以使用以下内容:
char result[4];
for(int i=0;i<4;++i)
{
result[3-i] = (value % 10);
value /= 10;
}
答案 2 :(得分:0)
尝试
char y[5];
sprintf(y, "%4d", x);
答案 3 :(得分:0)
这个号码的逻辑作用是什么?通常,你定义一个 名称基于逻辑角色的操纵器,并使用它。也许 像是这样的事情:
class serialno
{
int myWidth;
public:
serialno( int width ) : myWidth( width ) {}
friend std::ostream& operator<<(
std::ostream& stream, serialno const& manip )
{
stream.fill( '0' );
stream.width( myWidth );
return stream;
}
};
然后你可以写:
std::cout << serialno( 4 ) << myNumber;
(更好的实现会保存流的格式化状态, 并在析构函数中恢复它,在完整结束时调用 表达。)
当然,要将它放入字符数组中,您可以使用
std::ostringstream
而不是std::cout
。