我是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';
但这只是用零覆盖输入。我想改为插入零。
答案 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);
}
感谢所有提供帮助的人!我真的很感激。