我试图在c中打印一个整数但是以零开头的那些导致我的问题。 例如,如果没有。是01234它打印像1234而不是01234.请告诉如何在C
中进行我的问题是有2个整数,我想知道第一个整数是否在第二个的开头。
代表
123和
12345“是”因为123(第一个整数)位于第二个整数(12345)的开头
但是以防万一
123和
012345
它应该打印“no”因为123不在0123345的beginnig中但在c尾随零被删除而我的程序正在打印“是”
请告诉我们该做什么(注意 - 数字的数字可以在整数范围内变化,第二个整数等于或大于第一个整数)
答案 0 :(得分:4)
int i = 1234;
printf("%08d", i); // zero-pad to 8 places.
printf
documentation 答案 1 :(得分:1)
我的建议是,如果您从用户那里获取STDIN的值。 然后,如果要将该值用于打印目的,则需要将带有前导零的整数存储到字符串而不是整数中。因为如果将该字符串值存储在整数中,则前导零没有意义。
所以printf中的%s保留用户以这种方式进入的零数。
答案 2 :(得分:0)
#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"
no