比较 int 与前导零 int

问题描述 投票:0回答:1
 #include <stdio.h>

  int main(){
    int a,b;
    scanf("%d %d", &a,&b);

     if(a==b) printf("equal");
}

所以我输入了001和1的数字,但是它相等,我想让它不相等,有没有可能做到这一点以及如何做到?

#include <stdio.h>

 int main(){
  int a,b;
    scanf("%d %d", &a,&b);

   if(a==b) printf("equal");
}

我输入001和1`

c integer hardware long-integer
1个回答
0
投票

scanf("%d")
会丢弃所有前导零,因此您将无法正确比较
ints
。 一般来说,
int
只是一个数字,不存储前导零等任何内容。 要保留前导零,您需要使用
strcmp
:

读取和比较字符串
char a[21], b[21];
scanf("%20s %20s", a, b);

int c = strcmp(a, b);
if (c < 0)  /* a is lexicographically lower */;
if (c == 0) /* a is equal to b */;
if (c > 0)  /* a is lexicographically greater */;
© www.soinside.com 2019 - 2024. All rights reserved.