gpt4 book ai didi

c - While 循环不以空字符结束

转载 作者:行者123 更新时间:2023-11-30 18:30:10 25 4
gpt4 key购买 nike

我在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com