【发布时间】:2016-01-29 00:18:45
【问题描述】:
我一直在为一个项目而苦苦挣扎,所以我必须在 C 中验证 4 位数字,我考虑过使用字符,因为我需要验证 0001 但没有 1。然后我想我需要将其转换为整数使用它。有人可以帮我吗?
printf("Enter a number 0 to end:");
gets(str);
while (strcmp(str, "0"))
{
j = 0;
k = 0;
flag = 0;
while (*(cad + j)) {
if (!isdigit(*(cad + j)))
flag = 1;
j++;
k = ++;
}
if (!flag && k == 4) {
i = atoi(cad);
q = newnode();
q->num = i;
stack(&pi,q);
}
else
printf("Wrong number");
printf("Enter a number 0 to end:");
gets(str);
}
【问题讨论】:
-
你的代码不可读。并且不要使用
gets()它已被弃用。你读过strcmp()做了什么吗? -
这部分
i need to validate 0001 but no 1.我不清楚。你能给我们一个例子来说明它应该在哪里失败和应该在哪里成功 -
如果你输入 1 应该是无效的 如果你输入 0001 应该是有效的这就是为什么我使用一个 char 字符串来按数字验证数字
-
但这是一个通用的验证规则还是
0001是唯一有效的值?如果是这样,您想检查它是否有 4 个字符并且是一个数字?
标签: c validation char int type-conversion