C 如何对字符数组(字符串)使用isdisit()?

C 如何对字符数组(字符串)使用isdisit()?,c,C,我正在使用C来开发我的迷你项目。因此,当我将isdigit()用于一个字符(比如char a)并使用scanf(“%c”,&a)获取输入时,它可以完美地工作。但当我将其用于字符串时失败 (说char a[5]),并使用scanf(“%s”,a)获取它。 我希望,如果我以55 isdigit()的形式给出输入,它的计算结果应该为true,而不是当我以“Wd”的形式给出输入时。isdigit()只能接收一个字符作为参数。 它无法理解字符数组 如果字符a[5]位于内存上的0x3838中,为数字(a)虚

我正在使用C来开发我的迷你项目。因此,当我将isdigit()用于一个字符(比如char a)并使用
scanf(“%c”,&a)获取输入时,它可以完美地工作。但当我将其用于字符串时失败
(说char a[5]),并使用
scanf(“%s”,a)获取它。
我希望,如果我以55 isdigit()的形式给出输入,它的计算结果应该为true,而不是当我以“Wd”的形式给出输入时。

isdigit()
只能接收一个字符作为参数。 它无法理解字符数组

如果
字符a[5]
位于内存上的0x3838中,
为数字(a)虚拟是
isdigit(0x3838)
因此它将返回0(或false)

如果要测试字符数组是否为数字,则应

int isdigit_array(char *a){
  int num = strlen(a);
  if(num == 0) return 0;

  int flag_isdigit = 1;
  int i;
  for(i=0; i<num; i++){
    flag_isdigit = flag_isdigit && isdigit(a[i]);
  }
  return flag_isdigit;
}
int-isdigit\u数组(字符*a){
int num=strlen(a);
如果(num==0)返回0;
int flag_isdigit=1;
int i;
对于(i=0;i