2

左側にゼロが埋め込まれた文字列値を右揃えしたい。次のコードを書きましたが、0 ではなく空白が出力されます。

#include<stdio.h>

    int main()
    {
            char s[4]="PJ";
            printf("%04s",s);
    }

    Output: "  PJ"

    I need output as "00PJ".
4

4 に答える 4

0
#include <stdio.h>
#include <string.h>

int main(){
    char s[5]="PJ";
    char padding[sizeof(s)] = {0};
    int width = sizeof(padding)-1;

    memset(padding, '0', width);
    width -= strlen(s);

    //printf("%.*s%s\n", (int)(4-strlen(s)), "0000", s);
    printf("%.*s%s\n", width, padding, s);
    return 0;
}
于 2013-08-13T10:33:51.110 に答える