首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保持C语言中的前导零

保持C语言中的前导零
EN

Stack Overflow用户
提问于 2013-06-20 13:19:30
回答 3查看 5.8K关注 0票数 0

我试图用c来打印一个整数,但是那些以零开头的整数导致了我的问题。例如,如果不是。是01234吗?它的打印方式是1234而不是01234。请告诉我用C语言怎么做

我的问题是有两个整数,我想知道第一个整数是否在第二个整数的开头。

对于ex- 123和

12345“是”,因为123(第一个整数)在第二个整数的开头(12345)

但在情况123和

012345它应该打印"no“,因为123不是在0123345的开头,而是在c中,尾随零被删除,我的程序打印"yes”。

请告诉我怎么做(注意-位数可以在整数的范围内变化,第二个整数等于或大于第一个整数)

EN

回答 3

Stack Overflow用户

发布于 2013-06-20 13:20:23

代码语言:javascript
复制
int i = 1234;
printf("%08d", i);   // zero-pad to 8 places.

  • printf documentation
  • Working example
票数 4
EN

Stack Overflow用户

发布于 2013-06-20 13:34:48

我的建议是,如果您从用户处获取STDIN的值。然后,如果要将该值用于打印目的,则需要将带有前导零的整数存储到字符串中,而不是整数中。因为如果将该字符串值存储在整数中,则前导零没有任何意义。

因此,%s在printf中保留了用户以这种方式忽略的零的数量。

票数 1
EN

Stack Overflow用户

发布于 2013-06-20 13:45:20

代码语言:javascript
复制
#include <stdio.h>
#include <string.h>

#define N_DIGITS 64

main()
{
    char a[N_DIGITS], b[N_DIGITS];
    scanf("%s%s", a, b);
    if(strncmp(a, b, strlen(a))==0)
        puts("yes");
    else
        puts("no");
    return 0;
}

请注意,数字的长度受值N_DIGITS的限制。结果如下;

代码语言:javascript
复制
$ ./a.out <<<"123 12345"
yes
$ ./a.out <<<"123 012345"
no
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17205827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档