C 是数字不';t在int数组元素上返回true
单击此处获取..的文档 isdigit(int)实际上需要一个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
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';
}