如何用前导零填充数组?

How do I pad an array with leading zeroes?

本文关键字:数组 填充 何用前      更新时间:2023-10-16

我是C++新手,并尝试用前导零填充字符数组。我已经看到了用填充零打印的答案,但我想直接填充数组。

在这种情况下,我有一个大小[20]数组。因此,如果我输入123456789,该数字将填充 11 个零并打印00000000000123456789。或者,如果输入为 1,则将附加 19 个前导零并打印00000000000000000001

char input[20];
int main () {
cout << "Enter a number - ";
cin >> input; // Eg. "12"
//*code here*
printf("%sn", input); // Prints "00000000000000000012"

应该有一个简单的方法可以做到这一点,但我就是找不到它。到目前为止,我尝试过的代码是这样的......

for (int i = 0; i < number_of_zeroes; i++) { //pad with zeroes
input[i] = '0';

但这只会用零覆盖输入。我想插入零。

感谢Chetan Tamboli提供的链接,我能够解决自己的问题。

char input[20];
char newinput[20];
int main () {
cout << "Enter a number - ";
cin >> input;
sprintf(newinput,"%020s",input);
printf("%sn",newinput);
}

感谢所有帮助过的人!我真的很感激。