在C中如何判断输入的一个数是整数还是字符?

我先以整数形式读入一个数:
main()
{
long int x;

scanf("%ld", &x);
if(x为整数)
printf("OK");
if(x为字符)
printf("Wrong");
}

这段程序的意思即为在屏幕上输入一个数,如果为a,b以及空格之类的字符,则输出Wrong,如果是1,2等整数则输出OK,请哪位高手指教一下这个程序具体该怎么写!
还有一个问题,如果先以%ld的形式输入一个字符,怎样才能输出这个字符本身呢?

很明显,不可能实现准确的区分字母和数字,因为字母在内存中是以它的ASCII的形式存储的,也就是说,字符就是数字,数字就是字符,只不过有些数字对应的字符无法显示在屏幕上,例如数字0对应'\0',它就显示不出来...
又例如,输入数字97,谁知道是字母a还是数字97~~~~谁也判断不出来,人家C语言就这样存储字符的,要怪就怪美国的贝尔实验室,谁叫它这么开发的C呢~
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-09-28
第一种方法:
#include<stdio.h>

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();
}
第2个回答  推荐于2016-04-21
#include<stdio.h>
void main()
{
char str[100];
int i,j;
printf("请输入一个数字:\n");
for(i=0;(str[i]=getchar())!='\n';i++)
;
for(j=0;j<i;j++)
{
if(str[j]=='.')
{
printf("这个数字不是整数!\n");
break;
}
}
if((i==j)&&(0!=i))
printf("这个数字是整数!\n");
}
第3个回答  2008-09-29
对输入看成字符,然后在程序里判断转换,这是C语言里很重要的思想。

#include <stdio.h>
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
第4个回答  2008-09-29
是由你自己来判断的,你认为他输入的是字符就是字符,就按字符处理,输入者是按程序设计者的格式来输入数据的

在C中如何判断输入的一个数是整数还是字符?
很明显,不可能实现准确的区分字母和数字,因为字母在内存中是以它的ASCII的形式存储的,也就是说,字符就是数字,数字就是字符,只不过有些数字对应的字符无法显示在屏幕上,例如数字0对应'\\0',它就显示不出来...又例如,输入数字97,谁知道是字母a还是数字97~~~谁也判断不出来,人家C语言就这样存储字符的...

c语言编程中如何判断一个数是否为整数
C语言判断是否为整数,那么只可能是判断输入的值,或者字符串中的值,是否为整数。因为一旦存储在变量中,根据变量类型,要么为整数,要么为浮点数,是确定的。一、判断思路:1、整数中,按十进制计算,合法字符为0到9,另外在最初位置可以有符号,即+或者-。2、对于输入的值,可以先存储到字符串中,...

C语言中怎样判断输入的是整数还是浮点数
printf(输入的是整型:%d\\n, a);}else{sscanf(str, %lf, &b); \/\/ 再从字符串格式化成浮点型 例如:int i;float f;double d;输入 i 是 整数,输入 f 是 float 型, 输入 d 是 double 型 (2) 看输入格式 scanf(%d %f %lf,...);d 输入整数; %f 输入 float 型; %lf 输入 dou...

c语言中如何判断输入的是字符还是数字
可以使用代码进行判断:include<stdio.h> intmain(){ charc;while(scanf("%c",&c)!=EOF){ getchar();if(c>='0'&&c<='9')printf("%c是数字\\n",c);elseif(c>='a'&&c<='z'||c>='A'&&c<='Z')printf("%c是字母\\n",c);elseprintf("%c是特殊字符\\n",c);} return0;}...

C语言中如何判断一个数是不是整数
float x;...if(fabs(x-(int)x)<1e-8)printf(“x是一个整数\\n”);else printf(“x不是一个整数\\n”);方法2:int c=(int)b,d=(int)(b+0.999999)if(c==d)printf(“是整数\\n”);else printf(“不是整数\\n”);方法3:float b;...if(b-(int)b==0)printf(“是整数\\n”);...

C语言:如何判断输入的是数字还是其他字符
1、可以用sacnf或gets函数直接接收输入的字符串,然后用循环遍历字符串中每一个字符,判断其是字母还是数字。2、可以用循环调用getch()或getchar()函数来一个一个字符的接收输入,同时判读输入的是字母还是数字。至于怎么判读是字母还是数字,很简单,假设字符c,满足 (c>='a'&& c<='z')|| (c>=...

如何用c语言实现“判断用户输入一个值为正整数,如果不是提醒用户重新输...
可以让用户输入一个字符串,然后检查每个字符是否是0~9中的任意一个,如果不是,则不是正整数。当然这里会允许000123这样的情况出现,即数字可以用0开头。如要处理,还需另外考虑,如果不考虑这个问题,可以写成如下的代码 include <stdio.h>main(){ char input[BUFSIZ]; printf("Input a positive...

c语言里 输入时 怎么判断是字符还是数字?
1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。2、在test.cpp文件中,输入C语言代码:char a;scanf("%c", &a);if (a < '0' || a > '9') {printf("输入错误\\n");} 3、编译器运行test.cpp文件,此时成功判断了输入的是字符而打印了“输入错误”的提示。

C语言中怎么判断输入的数是整数还是浮点数?
c语言中没有判断输入是整数还是浮点数的既有功能,需要自己实现.实现方法是把输入作为字符串读入,然后自行分析该字符串表示的是整数还是浮点数.

c语言如何判断从键盘输入的是符号还是数字呢?
如果格式串是%d,则,当用户输入一个非数字字符时,scnaf()就会匹配失败,返回0 利用这个特点,可以在程序中进行输入数据的有效判断。因为系统不会自动清理缓存中的数据,所以,在读入错误数据时,要及时清理缓存,以免造成死循环。如:void main(){ int n; while( scanf("%d%*c", &n)!= ...

相似回答