如何用前导零填充数组?

时间:2018-10-14 21:58:19

标签: c++ c arrays

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

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

char input[20];

int main () {
  cout << "Enter a number - ";
  cin >> input; // Eg. "12"
  //*code here*
  printf("%s\n", input); // Prints "00000000000000000012"

应该有一种简单的方法来执行此操作,但我只是找不到它。到目前为止,我尝试过的代码都是这样的……

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

但这只是用零覆盖输入。我想改为插入零。

1 个答案:

答案 0 :(得分:0)

感谢链接Chetan Tamboli,只要我能够解决自己的问题即可。

char input[20];
char newinput[20];

int main () {
  cout << "Enter a number - ";
  cin >> input;
  sprintf(newinput,"%020s",input);
  printf("%s\n",newinput);

}

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