沒有結束我有一個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