请选择 进入手机版 | 继续访问电脑版

赵耀的知识库

 找回密码
 立即注册
搜索
热搜: 报盘 状态 失败
查看: 12765|回复: 0

关于字符串格式化输出前补零-%08s

[复制链接]

365

主题

371

帖子

2228

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2228
发表于 2019-11-20 23:01:10 | 显示全部楼层 |阅读模式

问题语句:
printf("%08s","admin");
该句代码在windows上和在linux表现不一致。
1)在windows上输出:000admin,字符串前面自动补0
2)在linux上(实际是redhat7.4测试)输出是:3个空格+admin;前面补的是空格。

自己实现了一个前面补零的方法:
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
int main(int argc, char* argv[])
{
        char buf[32] = "admin";
        char temp[32] = "00000000";
        int left = 8-strlen(buf);
        if (left >= 0)
        {
                strncpy(temp+left,buf,strlen(buf));
        }
        else
        {
                strncpy(temp,buf,8);

        }
        printf("%s\n",temp);
        return 0;
}

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则