在c中的字符串中添加零填充?

问题描述 投票:0回答:2

这个概念与此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

c
2个回答
1
投票

您需要使用sprintf

sprintf(file_frame, "%04d", 34);

0表示要填充的内容,4表示整数的长度。


另外,您还应该使用如下的可变数组。

char *file_frame = "shots"; --> char file_frame[100] = "shots";

2
投票

首先,您需要一些空间来存储字符串。然后您“打印”到该字符串中:

#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()函数中将文字部分与格式部分结合在一起。

© www.soinside.com 2019 - 2024. All rights reserved.