为了账号安全,请及时绑定邮箱和手机立即绑定

输入n为数字时,不是应该执行if的语句输出Yes吗,可是为什么运行时会输出No,是其他地方有问题吗?

输入n为数字时,不是应该执行if的语句输出Yes吗,可是为什么运行时会输出No,是其他地方有问题吗?

C++
凤凰求蛊 2023-03-17 16:18:53
我记得isdigit()的用法是如果参数为数字,则返回ture。但是使用过程中还是有些弄不明白的地方,比如说下面的程序:#include<iostream>#include<string>#include<cctype>using namespace std;int main(){int n;cin>>n;if(isdigit(n))cout<<"Yes";elsecout<<"No"; return 0;}
查看完整描述

3 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

isdigit()里的参数是指ASCII码数字所代表的字符,你查一下ASCII字符表,如:97表示A字符。
/* 找出str字符串中为阿拉伯数字的字符*/
#include<ctype.h>
main()
{
char str[]="123@#FDsP[e?";
int i;
for(i=0;str[i]!=0;i++)
if(isdigit(str[i])) printf("%c is an digit character\n",str[i]);
}
参考一下这段代码。

查看完整回答
反对 回复 2023-03-21
?
桃花长相依

TA贡献1860条经验 获得超8个赞

#include<iostream>#include<string>#include<cctype>using namespace std;int main(){     char c;     cin>>c;     if(isdigit(c))//判断单个字符是否为数字,不是int型的整数        cout<<"Yes";     else        cout<<"No";     return 0;}

查看完整回答
反对 回复 2023-03-21
?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

isdigit判断输入是否在'\0'到'\9‘之间,你如果输个字母a,那明显不是digit

查看完整回答
反对 回复 2023-03-21
  • 3 回答
  • 0 关注
  • 88 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信