没有结束我有一个C语言代码的循环:虽然在循环空字符
i = 0;
while(!isdigit(password[i]) && password[i++] != '\0');
密码是全局声明如下:
char password[33];
i
是一个整数。
我想检查用户输入的密码是否至少有一个数字。
如果我换成“\ 0”与其他任何字符,比如说,“P”,它的工作原理当且仅当p出现在字符数组的中间,
例如:
1.It工作,如果:
password = bblahblah9**pa**
如果2.It不起作用:
password = blahblah9**p**
我想,它不是扫描年代末因为空字符总是在最后它正在,我不知道,跳过或什么。
!isdigit(password[i]) && password[i++] != '\0'
如果isdigit(password[i])
回报true
&&
运营商的右侧未评估:
你如何存储在'password'字符串? – Rohan
scanf(“%s”,密码); –
您应该将'isdigit(password [i])'更改为'isdigit((unsigned char)password [i])',因为'isdigit'不处理负输入,'char'可以是有符号类型。 – melpomene