int 基本上存储前导零。您遇到的问题是您没有打印那里的前导零。
另一种不同的方法是创建一个函数,该函数将接受四个 int 值和一个字符串,然后返回一个带有数字的字符串。
使用这种方法,您将拥有一个具有非常好的凝聚力、无副作用、可在您需要完成类似操作的地方重复使用的辅助函数。
例如:
char *joinedIntString (char *pBuff, int int1, int int2, int int3, int int4)
{
pBuff[0] = (int1 % 10) + '0';
pBuff[1] = (int2 % 10) + '0';
pBuff[2] = (int3 % 10) + '0';
pBuff[3] = (int4 % 10) + '0';
pBuff[4] = 0; // end of string needed.
return pBuff;
}
然后在需要打印值的地方,您可以使用参数和提供的字符缓冲区调用函数,然后只打印字符缓冲区。
使用这种方法,如果你有一些不合理的数字最终有多个前导零,你将得到所有的零。
或者您可能想要一个将四个 int 组合成一个 int 的函数,然后是另一个将组合 int 与前导零打印的函数。
int createJoinedInt (int int1, int int2, int int3, int int4)
{
return (int1 % 10) * 1000 + (int2 % 10) * 100 + (int 3 % 10) * 10 + (int4 % 10);
}
char *joinedIntString (char *pBuff, int joinedInt)
{
pBuff[0] = ((joinedInt / 1000) % 10) + '0';
pBuff[1] = ((joinedInt / 100) % 10) + '0';
pBuff[2] = ((joinedInt / 10) % 10) + '0';
pBuff[3] = (joinedInt % 10) + '0';
pBuff[4] = 0; // end of string needed.
return pBuff;
}