C 如何对字符数组(字符串)使用isdisit()?
我正在使用C来开发我的迷你项目。因此,当我将isdigit()用于一个字符(比如char a)并使用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)虚
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