Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C中保持前导零_C - Fatal编程技术网

在C中保持前导零

在C中保持前导零,c,C,我试图用c语言打印一个整数,但那些以零开头的整数给我带来了问题。 例如,如果编号为01234,则打印方式为1234,而不是01234。请告诉我如何使用C 我的问题是有2个整数,我想知道第一个整数是否在第二个整数的开头 前- 123和 12345“是”,因为123(第一个整数)位于第二个整数(12345)的开头 但万一 123和 012345 它应该打印“否”,因为123 in不是在0123345的开头,而是在c中,尾随的零被删除,我的程序正在打印“是” 请告诉我们该怎么做(注意:数字的数量可以在

我试图用c语言打印一个整数,但那些以零开头的整数给我带来了问题。 例如,如果编号为01234,则打印方式为1234,而不是01234。请告诉我如何使用C

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

前- 123和
12345“是”,因为123(第一个整数)位于第二个整数(12345)的开头

但万一 123和
012345 它应该打印“否”,因为123 in不是在0123345的开头,而是在c中,尾随的零被删除,我的程序正在打印“是”

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

  • printf
  • printf

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


因此,printf中的%s将保留用户以这种方式输入的零数。

如果您从用户的STDIN中获取值,我的建议是。
#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;
}
然后,如果要使用该值进行打印,则需要将带前导零的整数存储到字符串中,而不是整数中。因为如果将字符串值存储在整数中,前导零没有意义


因此,printf中的%s保留用户以这种方式输入的零的数量。

我只想保留用户未输入的0,最多不超过8个位置。您不能。将数字读入整数后,前导零(没有意义)就消失了。整数只存储数字。如果还有更多问题,那么你应该显示你正在使用的代码。+1关于响应速度:)我想52秒还不错:-)@himanshu听起来像是你应该把你的数字作为一个字符串来读。我只想保留用户没有输入的0不超过8个位置你不能。将数字读入整数后,前导零(没有意义)就消失了。整数只存储数字。如果还有更多问题,那么你应该显示你正在使用的代码。+1关于响应速度:)我想52秒还不错:-)@himanshu听起来像是你应该把你的数字当作字符串来读。你的标题有误导性。这应该像“比较数字和前面的零”。如果你把数字当作字符串处理,你可以做得更好。你的标题有误导性。这应该像“比较数字和前面的零”。如果你把数字当作字符串处理,你可以做得更好。
#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;
}
$ ./a.out <<<"123 12345"
yes
$ ./a.out <<<"123 012345"
no