Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 当我用函数isdigit()检查两个整数时,第一个=1,第二个=2,结果是错误的_C - Fatal编程技术网

C 当我用函数isdigit()检查两个整数时,第一个=1,第二个=2,结果是错误的

C 当我用函数isdigit()检查两个整数时,第一个=1,第二个=2,结果是错误的,c,C,为什么在我的代码中,isdigit函数不起作用,当我打印和时它是0? p、 包括lib isdigit用于检查字符是否为十进制数字-我不清楚使用了什么字符库,但我不知道有任何字符库中1和2是字符。例如,请尝试48和49,它们是“0”和“1”的ASCII值。这两者都应该使isdigit返回非零结果,至少如果它使用ASCII 如果没有文本数据,则不需要调用isdigit。现在还不清楚您真正想要实现的是什么,但我怀疑isdigit是一种误导…原因是它根据Ascii将这些int转换为char,并将它们视

为什么在我的代码中,isdigit函数不起作用,当我打印和时它是0? p、 包括lib

isdigit用于检查字符是否为十进制数字-我不清楚使用了什么字符库,但我不知道有任何字符库中1和2是字符。例如,请尝试48和49,它们是“0”和“1”的ASCII值。这两者都应该使isdigit返回非零结果,至少如果它使用ASCII


如果没有文本数据,则不需要调用isdigit。现在还不清楚您真正想要实现的是什么,但我怀疑isdigit是一种误导…

原因是它根据Ascii将这些int转换为char,并将它们视为非数字。

isdigitx在x介于48和59之间(含48和59)时为您提供true

在Ascci值中

48=0

49=1

57=9

isdigit函数检查给定的参数是否表示数字,而不是参数类型是否为数字毕竟,参数始终是整数


例如,“a”的ASCII表示为97,因此isdigit97将返回零。但是,“1”是49,因此isdigit49将返回非零,即true。

因为它们都不是平台字符表示中的数字。请参阅此参考资料。isdigit不适用于整数。显然,int变量包含数字。isdigit用于检查字符是否包含数字。当prvi和drugi介于48和57之间时,它会起作用,因为ASCII表中的48和57以及“0”和“9”分别将签名显示为接受int参数。。。错了吗?没有讽刺-我真的不知道什么才算是C标准库的一个好的web参考。ISDIGH采用int。jon ScSwitt,引用不被C++社区高度重视,但它是正确的。在*nix系统上,man isdigit也很有用。确实是int,但它在内部将int视为int的Ascii值。我也不认为它被限制为Ascii。我不认为它被限制为Ascii。@juanchopanza你说得很对,-我说Ascii只是为了让事情简单。如果您想澄清这一点,请随意编辑答案。谢谢,我没有读到关于此函数的参数类型要求。
int main(void)
{
  int sum = 0;
  int prvi = 0;
  int drugi = 0;

   prvi = 1;
   drugi = 2;

            if ( isdigit(prvi) && isdigit(drugi) )
                sum = prvi + drugi;

    printf("sum: %d \n",sum);
}