作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 C 语言代码中有一个循环:
i = 0;
while(!isdigit(password[i]) && password[i++] != '\0');
密码是这样全局声明的:
char password[33];
i
是一个整数。
我想检查用户输入的密码是否至少包含一个数字。
如果我将 '\0' 替换为任何其他字符,例如 'p',只要 p 出现在字符数组的中间,它就可以工作,
例如:
1.它在以下情况下有效:
password = bblahblah9**pa**
2.如果出现以下情况,则不起作用:
password = blahblah9**p**
我猜,它没有正确扫描字符串的末尾,因为空字符总是在它的末尾,我不知道,跳过了什么。
最佳答案
一旦找到数字,索引i
就不会增加:
!isdigit(password[i]) && password[i++] != '\0'
如果 isdigit(password[i])
返回 true
,则不计算 &&
运算符的右侧。
关于c - While 循环不以空字符结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32806616/
我是一名优秀的程序员,十分优秀!