c - scanf 检测前导 0

标签 c int scanf

我想知道如何检测输入是否有前导零。

scanf("%d", &d);

这只会将 07 更改为 7 等。

最后,如果输入有前导零,我想返回 (1),如果输入正常,我想返回 (0)。

谢谢。

最佳答案

如果您想知道一个数字是否有前导零,您必须将其作为字符串读取,并自己进行验证。字符串 07 只是表示形式,当存储为整数时,它仅存储为 7

要验证您读取的字符串是一个带前导零的整数,您可以先使用 strtol检查它确实是一个有效的整数。然后只需检查字符串中的第一个字符是否为 '0'

关于c - scanf 检测前导 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20019364/

相关文章:

c - 如何让小数点的值只显示在数字中?

c++ - 整数值的缩放(来自 float )

ios - 将 Int 转换为 CGFloat 结果为 0.000000

c - 简单的 C 程序在变量应该 scanf 后一致地将变量打印为 6356748

将字符串输入与另一个字符串进行比较

c - 宏 C 中的 LUT

c++ - 为什么 C++11 不支持 C99 指定的初始化列表?

c - do-while 语句中的逻辑错误?

java - 为什么如果在二维数组中的 int 前面放一个 0 会改变输出数字? java

c - 如何在 C 中的 scanf() 函数中使用无限类型说明符?