很明显,不可能实现准确的区分字母和数字,因为字母在内存中是以它的ASCII的形式存储的,也就是说,字符就是数字,数字就是字符,只不过有些数字对应的字符无法显示在屏幕上,例如数字0对应'\0',它就显示不出来...
又例如,输入数字97,谁知道是字母a还是数字97~~~~谁也判断不出来,人家C语言就这样存储字符的,要怪就怪美国的贝尔实验室,谁叫它这么开发的C呢~
第一种方法:
#include
void main()
{
long int x;
int f=0;
f=scanf("%ld",&x);
if(f) printf("\nOK");
else printf("\nWrong");
getch();
}
第二种方法:
void main()
{
char x;
scanf("%c",&x);
if(x>='0'&&x<='9') printf("\nOK");
else printf("\nWrong");
getch();
}
#include
void main()
{
char str[100];
int i,j;
printf("请输入一个数字:\n");
for(i=0;(str[i]=getchar())!='\n';i++)
;
for(j=0;j {
if(str[j]=='.')
{
printf("这个数字不是整数!\n");
break;
}
}
if((i==j)&&(0!=i))
printf("这个数字是整数!\n");
}
对输入看成字符,然后在程序里判断转换,这是C语言里很重要的思想。
#include
void main()
{
   char ch;
   scanf("%c", &ch);
   if(ch>=48 && ch<=57)
   {
     printf("OK\n");
     printf("your put is int %d\n",ch-48);
   }
   else
   {
     printf("Wrong\n");
     printf("your put is char %c",ch);
   }
}
QQ群:49467266
是由你自己来判断的,你认为他输入的是字符就是字符,就按字符处理,输入者是按程序设计者的格式来输入数据的