CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

如何使用CTYPE.H里的isdigit函数

楼主beyondlwm(nobitalwm)2005-04-04 09:40:12 在 C/C++ / C语言 提问

isdigit函数据书上说是判断一个字符是否是0-9之间的数字,如果是,则返回1,如果不是则返回0  
  于是有如下的程序:  
  main()  
  {  
  int   a,b=1;  
  a=isdigit(b);  
  cout<<a;  
  getch();  
  }  
  最后的结果是0,可是按理说结果应该是1才对啊  
  我的目的主要是判断用户输入的字符是否是合法的数字(而不是字母或者其他)。 问题点数:0、回复次数:12Top

1 楼pcboyxhy(-273.15℃)回复于 2005-04-04 09:45:14 得分 0

isdigit(   )是针对char型的  
   
  b的值是1,ASCII码是1当然不是   0~9(ASCII   48~57)Top

2 楼pcboyxhy(-273.15℃)回复于 2005-04-04 09:46:11 得分 0

char   b='1';  
  int   a;  
  a=isdigit(b);  
  Top

3 楼jdh2010(小金)回复于 2005-04-04 10:01:02 得分 0

学习ingTop

4 楼beyondlwm(nobitalwm)回复于 2005-04-04 18:43:53 得分 0

再问一个问题  
  很常用的,我需要用户输入一个Y或者是N。  
  非这两个字符的就提示重新输入  
  请问如何对用户的输入进行判断?  
  而且希望用户只能输入一个字符Top

5 楼pcboyxhy(-273.15℃)回复于 2005-04-04 18:53:22 得分 0

char   c;  
          while(1)    
          {  
                  c=getch();  
                  if(c!='Y'   &&   c!='N')  
                          printf("Input   again.\n");  
                  else  
                          break;  
          }Top

6 楼beyondlwm(nobitalwm)回复于 2005-04-04 21:04:49 得分 0

楼上的这个解答虽然是正确的,但是我还想问一点就是  
  如何让用户输入的长度只占1位。就是无论他输入多少东西,只有一位,类似于网上某些地方填的东西满了以后,以后输入的东西都会自动修改以前输入的。  
  还有就是,如我  
  int   a  
  然后让用户输入一个字符,万一用户输入的不是数字而是字母,系统会自动出现死循环,如何限制用户的输入规范?Top

7 楼beyondlwm(nobitalwm)回复于 2005-04-04 21:11:28 得分 0

char   b='1';  
  int   a;  
  a=isdigit(b);  
   
   
  三楼的朋友,我试过你的方法,但是结果是a的值是2~为什么啊~!?Top

8 楼ysbcg(Hummer)回复于 2005-04-04 21:39:51 得分 0

#include   <stdio.h>  
  #include   <CONIO.H>  
  int   main()   {  
          int   longofs=8;//   你要的长度  
          char   c;  
          while(1)   {  
                  c=getch();  
                  if(c==13)   break;  
                  if(0==longofs)   {  
                          putchar(8);  
                          putchar(c);  
                  }   else   {  
                          putchar(c);  
                          longofs--;  
                  }  
          }  
  }Top

9 楼ysbcg(Hummer)回复于 2005-04-04 21:44:35 得分 0

beyondlwm(nobitalwm)    
  怎么会?  
  printf("%d",isdigit('a'));  
  你看看是0Top

10 楼ysbcg(Hummer)回复于 2005-04-04 21:49:46 得分 0

#include   <stdio.h>  
  #include   <CONIO.H>  
  int   main()   {  
          int   longofs=8;//   你要的长度  
          char   c;  
          int   i=0;  
          while(1)   {  
                  c=getch();  
                  if(c==13)   break;  
                  else   if(c=8)   {  
                          putchar(8);  
                          i=c/10;  
                  }   else   if(c>57||c<48)   {  
                          break;  
                  }   else   {  
                          putchar(c);  
                          i=c*10+c-48;  
                  }  
          }  
  }  
  Top

11 楼beyondlwm(nobitalwm)回复于 2005-04-04 22:26:09 得分 0

我要求用户输入的数字是在0-99之间,除了这个区间的数字通通看做为非法数字而提示用户重新输入,该如何判断?Top

12 楼wuyupu(wuyupu)回复于 2005-04-04 22:27:33 得分 0

isdigit的参数是const   charTop

相关问题

  • 关于isdigit()函数问题
  • VB.NET里的CType()函数对应于ASP.NET(C#)里的什么 函数??
  • 怎样才能使用TransparentBlt函数?*.h or *.lib ?
  • 怎么使用别人的*.lib跟*.h里面的函数
  • 如何使用isdigit(i)函数,在线等候
  • 如何通过.h文件读懂函数原型,自定义变量及函数。顺利编程
  • 函数
  • 函数
  • 函数?
  • 函数

关键词

  • longofs
  • isdigit
  • putchar
  • main
  • else
  • include

得分解答快速导航

  • 帖主:beyondlwm

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo