#include<stdio.h>#include<ctyp
c4droid吧
全部回复
仅看楼主
level 5
启蒙自己 楼主
#include<stdio.h>
#include<ctype.h>
int main ()
{
int a;
scanf ("%d",&a);
if (isdigit(a)==0)
printf("如果是数字就输出:a=%d",a);
}
2023年11月18日 15点11分 1
level 5
启蒙自己 楼主
难道中文也是数字?英文字母就为什么不能输出而且,一直到输入数字才会结束?谁能告诉我
2023年11月18日 15点11分 2
你已经定义a为int,那么scanf只能接收int。你输入的如果不是int,就不会改变a的值。 比如你先定义int a=10。 那么不管你怎么输入,a都不会改变,始终为10。 而isdigit是用来判断字符类型的,也就是char类型。 你把一个int类型放进去,当然认为“不是数字”,所以返回0。
2024年05月23日 12点05分
而你if又是==0,当然就每次都输出了。
2024年05月23日 12点05分
level 1
你都==0了,你想说的是如果不是数字就输出,那你“个”当然输出啦!
2023年12月31日 17点12分 3
我修正一下,我错了。因为isdigit是用来对字符进行判断的。一般用于字符串中判断当前字符。跟你定义的int没有关系。应该用char*或者char。
2024年05月23日 12点05分
先定义一个字符串: char *a=malloc(0) 接收一个字符串: scanf("%s",a); 假设用户输入字符串"C4droid",想知道第二个字符是不是数字: if(isdigit(a[1])==0) {printf("你输入的字符串中的第二个字符不是数字");} else {printf("如果是数字就输出:a=%c",a[1]}
2024年05月23日 12点05分
level 1
英文字母也可以输出
2023年12月31日 17点12分 4
level 6
2024年02月12日 15点02分 5
level 6
学吧都是知识
2024年02月12日 15点02分 6
level 1
如果是数字(真)就输出[捂嘴笑]
2024年02月16日 00点02分 7
level 1
我之前错了,我修正了。
关键在于isdigit不是用来处理int的,而是用来处理char或char*的。
因为没有必要对一个整数判断它是不是数字。
就像Python的isdigit那也是str.isdigit。
2024年05月23日 12点05分 8
1