我试图用c来打印一个整数,但是那些以零开头的整数导致了我的问题。例如,如果不是。是01234吗?它的打印方式是1234而不是01234。请告诉我用C语言怎么做
我的问题是有两个整数,我想知道第一个整数是否在第二个整数的开头。
对于ex- 123和
12345“是”,因为123(第一个整数)在第二个整数的开头(12345)
但在情况123和
012345它应该打印"no“,因为123不是在0123345的开头,而是在c中,尾随零被删除,我的程序打印"yes”。
请告诉我怎么做(注意-位数可以在整数的范围内变化,第二个整数等于或大于第一个整数)
发布于 2013-06-20 13:20:23
int i = 1234;
printf("%08d", i); // zero-pad to 8 places.printf documentation发布于 2013-06-20 13:34:48
我的建议是,如果您从用户处获取STDIN的值。然后,如果要将该值用于打印目的,则需要将带有前导零的整数存储到字符串中,而不是整数中。因为如果将该字符串值存储在整数中,则前导零没有任何意义。
因此,%s在printf中保留了用户以这种方式忽略的零的数量。
发布于 2013-06-20 13:45:20
#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的限制。结果如下;
$ ./a.out <<<"123 12345"
yes
$ ./a.out <<<"123 012345"
nohttps://stackoverflow.com/questions/17205827
复制相似问题