Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/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 是数字不';t在int数组元素上返回true_C_Struct_Pthreads - Fatal编程技术网

C 是数字不';t在int数组元素上返回true

C 是数字不';t在int数组元素上返回true,c,struct,pthreads,C,Struct,Pthreads,单击此处获取..的文档 isdigit(int)实际上需要一个char值。它返回输入的char值是否在48到57之间(ASCII值为0-9) 因此,如果您需要检查temp->arr[i][j]是否是一个数字,您可以使用八个isdigit(48+temp->arr[i][j])或isdigit('0'+temp->arr[i][j]) arr实际上是一个整数数组。因此,您不能在arr中存储任何其他类型的变量。检查的目的是什么。。?您可以使用它来检查数组元素中是否只有一个数字。isdigit(int

单击此处获取..的文档

isdigit(int)实际上需要一个
char
值。它返回输入的
char
值是否在48到57之间(ASCII值为0-9)

因此,如果您需要检查
temp->arr[i][j]
是否是一个数字,您可以使用八个
isdigit(48+temp->arr[i][j])
isdigit('0'+temp->arr[i][j])

arr
实际上是一个整数数组。因此,您不能在
arr
中存储任何其他类型的变量。检查的目的是什么。。?您可以使用它来检查数组元素中是否只有一个数字。

isdigit(int)
需要一个介于
无符号字符
EOF
范围内的值,否则它是未定义的行为。如果
char
被签名,那么
isdigit(int)
使用负值
char
值是有问题的

isdigit(int)
当值在范围
'0'
内时,返回true<代码>'9'。这些辅音的数值通常为48到57”,但它依赖于字符集-ASCII是最常见的。10个值必须是连续的

要将数字转换为文本数字,请使用
x+'0'

要测试文本数字并避免在有限范围内使用
isdigit()
,请使用:

typedef struct
{
    int row;
    int col;
    int arr[SIZE][SIZE];
}parameters;
inttest\u是数字(intx){

返回x>='0'&&x数组是用所有数字初始化的。是否用
1
之类的数字或
'1'
之类的字符初始化它们?要获得
isdigit(),需要使用后者而不是前者
返回true。我用1作为整数初始化它。这就是问题所在。你可以通过向数字中添加
'0'
来将数字转换为其字符表示形式。哦,我明白了,那么我想我会在
if(isdigit(temp->arr[I][j])&temp->arr[I][j]中尝试另一种方法
typedef struct
{
    int row;
    int col;
    int arr[SIZE][SIZE];
}parameters;
int test_isdigit(int x) {
   return x >= '0' && x <= '9';
}