Q2532212247 2020-04-18 20:44 采纳率: 0%
浏览 376

printf设定输出宽度后,数字位数不足,可以用除“0”外的符号填充吗?

使用cout,设定输出宽度后,可以用除“0”外的符号填充。那printf设定输出宽度后,数字位数不足,可以用除“0”外的符号填充吗?

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-04-19 11:40
    关注

    问题解决的话,请点下采纳

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    char * padleft(char *s, int n, char ch = ' ')
    {
        int l = strlen(s);
        char * ns = (char *)malloc(sizeof(char) * (n > l ? n + 1 : l + 1));
        if (l < n)
        {
            memset(ns, ch, n - l);
            strcpy(ns + n - l, s);
        }
        else
        {
            strcpy(ns, s);
        }
        return ns;
    }
    
    char * padright(char *s, int n, char ch = ' ')
    {
        int l = strlen(s);
        char * ns = (char *)malloc(sizeof(char) * (n > l ? n + 1 : l + 1));
        strcpy(ns, s);
        if (l < n)
        {
            memset(ns + l, ch, n - l);
            ns[n] = '\0';
        }
        return ns;
    }
    
    int main()
    {
        printf("%s\n", padleft("", 5, '0'));
        printf("%s\n", padleft("", 6, '0'));
        printf("%s\n", padleft("123", 5, '0'));
        printf("%s\n", padleft("123", 5, '*'));
        printf("%s\n", padleft("12345", 5, '0'));
        printf("%s\n", padleft("1234567", 5, '0'));
        printf("%s\n", padright("", 5, '0'));
        printf("%s\n", padright("123", 6, '0'));
        printf("%s\n", padright("123", 5, '0'));
        printf("%s\n", padright("123", 5, '*'));
        printf("%s\n", padright("12345", 5, '0'));
        printf("%s\n", padright("1234567", 5, '0'));
        return 0;
    }
    
    00000
    000000
    00123
    **123
    12345
    1234567
    00000
    123000
    12300
    123**
    12345
    1234567
    Press any key to continue . . .
    
    评论

报告相同问题?

悬赏问题

  • ¥15 VB6可以成功读取的文件,用C#读不了
  • ¥15 如何使用micpyhon解析Modbus RTU返回指定站号的湿度值,并确保正确?
  • ¥15 C++ 句柄后台鼠标拖动如何实现
  • ¥15 有人会SIRIUS 5.8.0这个软件吗
  • ¥30 comsol仿真等离激元
  • ¥15 静电纺丝煅烧后如何得到柔性纤维
  • ¥15 (标签-react native|关键词-镜像源)
  • ¥100 照片生成3D人脸视频
  • ¥15 伪装视频时长问题修改MP4的时长问题,
  • ¥15 JETSON NANO