这个概念与此Add zero-padding to a string非常相似,但这是c#NOT C的问题。
虽然您可以像这样printf("%4d", number)
在printf中添加零填充
如何给字符串填充零?例如:
char *file_frame = "shots";
strcat(file_frame, "%3d", number); // It's my attempt to solve it. I know it's wrong
以便我从shots000
中获得file_frame
您需要使用sprintf
sprintf(file_frame, "%04d", 34);
0
表示要填充的内容,4
表示整数的长度。
另外,您还应该使用如下的可变数组。
char *file_frame = "shots"; --> char file_frame[100] = "shots";
首先,您需要一些空间来存储字符串。然后您“打印”到该字符串中:
#include <stdio.h>
#include <stdlib.h>
int main(void) {
char file_name[8 + 1]; // "shots###" is 8 characters, plus 1 for end-of-string marker '\0'
int number = 23;
sprintf(file_name, "shots%03d", number);
printf("\"%s\"\n", file_name);
return EXIT_SUCCESS;
}
您可以在任何*printf()
函数中将文字部分与格式部分结合在一起。