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

金仕达黄金知识库

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

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

[复制链接]

333

主题

339

帖子

2008

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2008
发表于 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;
}

回复

使用道具 举报

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

本版积分规则

关闭

本站建设理念上一条 /1 下一条

QQ|手机版|小黑屋|客户端下载|金仕达黄金知识库

GMT+8, 2020-1-24 13:28 , Processed in 0.054765 second(s), 21 queries .

站长邮箱:yao.zhao@kingstarfintech.com

友情链接:金仕达官网 金仕达欢迎您!

2017-11-27 沪ICP备17051949号-2

快速回复 返回顶部 返回列表