gpt4 book ai didi

c - "Logical or"和 "logical and"c 中的 if 语句输出不同,尽管看起来相同

转载 作者:行者123 更新时间:2023-11-30 19:58:30 26 4
gpt4 key购买 nike

所以我得到了我编写的代码示例。我的目标是打印存储在 ptr char 变量中的句子中的数字。所以代码的第一部分完成了这项工作。

#include <stdio.h>
#include <stdlib.h>
void preg(char *p);

int main(int argc, char *argv[])
{
char *ptr;
ptr="John is 5 , jim is 2 and maria is 12";
preg(ptr);

return 0;
}


void preg(char *p)
{
while(*p!='\0')
{
if(*p>='0' && *p<='9')
{
putch(*p);
}
*p++;
}
}

但是如果我将 preg 函数更改为:

   void preg(char *p)
{
while(*p!='\0')
{
if(*p>='0' || *p<='9')// <--- Changed to logical or
{
putch(*p);
}
*p++;
}
}

程序打印整个句子?这对我来说似乎很奇怪,因为在这种情况下,两个逻辑运算符似乎都适合给定的任务。我希望有人能向我解释其中的区别。我怀疑它与数字比较时字符表示为整数的方式有关。

最佳答案

*p>='0' || *p<='9'等价于 true,因为 '9' >= '0' .

关于c - "Logical or"和 "logical and"c 中的 if 语句输出不同,尽管看起来相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26594947/

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