百韵网 >>  正文

c语言如何判断从键盘输入的是符号还是数字呢? c语言中如何判断输入的是字符还是数字

来源:www.baiyundou.net   日期:较早时间

C语言中,可以根据scanf()函数的返回值,判断输入的数据是否符合程序要求,该函数说明如下:

int scanf(const char *format, ...);

this functions return the number of input items successfully matched and assigned, which can be fewer than provided for, or even  zero  in  the event of an early matching failure. 该函数返回成功匹配并赋值给变量的个数,有可能少于想读的数据个数,甚至有可能是0(如果第一个格式串就匹配失败的情况下)。

如果格式串是%d,则,当用户输入一个非数字字符时,scnaf()就会匹配失败,返回0

利用这个特点,可以在程序中进行输入数据的有效判断。因为系统不会自动清理缓存中的数据,所以,在读入错误数据时,要及时清理缓存,以免造成死循环。如:

void main()
{
    int n;
    while( scanf("%d%*c", &n)!= 1 ) //用%*c来清除回车确认符和不合适的字符
    {
        printf("input error,please re-in:");
        fflush(stdin); //清除缓存,但此命令在linux下不起作用。windows可用。前面的%*c可以控制不会死循环。
    }
    printf("ur input is :%d
", n );
}


#include <stdio.h>

void main()
{
float x,y;
while(! scanf("%f",&x)) //如果没有正确读入
{
fflush(stdin); //清除输入流的错误信息
printf("Please input a float number:\n");
}
printf("%f\n",x);
}

给你简单的写了一下,从scanf返回值来判断是否成功读入数据,如果没有,就重新输入。
用了while循环,建议你不要用goto语句,goto语句是一个不好的习惯。

输入的东西要存在变量里,而变量的类型是决定了,是什么,

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

static int EnsureInt()
{
char a[100] = {0};
int i = 0,j = 1;
printf("Please input you want to set-num : \n");
scanf("%s", a);
printf("before while\n");

while(i < strlen(a))
{
if(a[0] != 45)
{
if((a[i] >= 48) && (a[i] <= 57))
{
i++;
}
else
{
break;
}
}
else if(a[0] == 45)
{

if((a[j] >= 48) && (a[j] <= 57))
{
j++;
i = j;
}
else
{
break;
}
}
}
printf("after while\n");
if(i < strlen(a))
{
printf("Input number invalid!\n");
return EnsureInt();
}

return atoi(a);
}
int main()
{
int x;

x=EnsureInt();
printf("x=%d\n", x);
return 0;
}

这段程序是保证输出为整数的,你参考一下吧

判断ASCII值

c语言中如何判断输入的是字符还是数字~

可以使用代码进行判断:

#include

intmain()

{

charc;

while(scanf("%c",&c)!=EOF)

{

getchar();

if(c>='0'&&c<='9')

printf("%c是数字
",c);

elseif(c>='a'&&c='A'&&c<='Z')

printf("%c是字母
",c);

elseprintf("%c是特殊字符
",c);

}

return0;

}

扩展资料
C语言判断输入是否是数字

intdigit;
printf("pleaseinputainteger
");
intret=scanf("%d",&digit);
if(0==ret)
{
printf("youshouldinputainteger
");
system("pause");
return0;
}

将输入的字母或数字都转换成asc码,然后根据范围设判断条件。

相关要点总结:

17226592125:c语言如何验证输入的是字母还是数字
应义答://输入非数字以及不符合条件时重新输入。include <stdio.h> include <math.h> void main(void){ long a,b,c,h,l,x1,x2;int i,j,k;while(1){ printf("Please input data a:\n");i=scanf("%d",&a);if(i==0)getchar();while(i==1){ printf("Please input data b:\n");j...

17226592125:C语言怎么判断输入的是数字还是字符
应义答:你是知道自己想要输入的是字符还是数字,对吧?如果是这样,你就加一个标志符,用来判断输入的东西是不是你要的。int flag;flag = scanf("%d",&n);if(flag==1) printf("right\n");else printf("wrong\n");flag = scanf("%d",&n); //送返成功读入的数据个数。输入字母,flag为0...

17226592125:C语言的问题:判断输入的字符属于哪一种字符:大写,小写,数字或其他符 ...
应义答:/***假设返回值 1为小写 2为大写 3为数字 4为其他字符 / cc(char c){ if(c>='a'&&c<='z'){ printf("小写字母");return 1;} else if(c>='A'&&c<='Z'){ printf("大写字母");return 2;} else if(c>=0&&c<=9){ printf("数字");return 3;} else { printf("其他字...

17226592125:c语言如何判断输入是数字串还是字符串
应义答:可以参考如下代码:include<stdio.h> double uniform(double,double,long int *); main() { double a,b,x; int i,j; long int s; a=0.0;b=1.0;s=13579; for(i=0;i<10;i++) { for(j=0;j<5;j++) { x=uniform(a,b,&s); printf("%1...

17226592125:编程实现从键盘输入一个字符,如何判断字符是数字、大小写字母、空格还...
应义答:要解答这道题,关键是要搞清楚字符有哪些?这些字符的ASCII 是什么?c语言中,每一种类型的字符有固定的ASCII范围!以下是本题的答案:include<stdio.h> void main(){ char c;printf("请输入一个字符:\n");c=getchar();if(c>=48&&c<=57)printf("该字符是数字!\n");else if(c>=65&&...

17226592125:"C语言怎么根据ASCII码判断输入的数据是字符串还是纯数字"
应义答:C语言使用的读入键盘输入的函数较常用的一般有:scanf fscanf sscanf getchar gets scanf、fscanf、sscanf 根据你定义的字符格式来判断是字符串还是纯数字。例如:scanf("%d",&a);使用了格式控制%d就表示输入的十进制整数;scanf("%",a);控制%s就表示输入的字符串。详细格式控制符如下:a 读浮点值(...

17226592125:C语言如何判断一个字符是不是标识符?
应义答:也可以使用isalnum()函数,它会检查传入的字符是否是字母或数字。if(isalnum(c))printf("%c is a identifier.", c);else printf("%c is not a identifier.", c);注意:C语言中标识符的命名规则是,以字母或下划线开头,后面跟字母、数字或下划线。另外,如果想要更精细的判断标识符,可以使用...

17226592125:C语言用switch实现从键盘输入一个字符,判断是数字还是其它?
应义答:使用switch判断比较麻烦,不建议使用这种方式。 char ch; // scanf ch switch(ch) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': printf("%c is a number.\n", ch); ...

17226592125:C语言从键盘输入一串字符,判定它是否是小写字母,如果是,则将它转换成大...
应义答:='\0'; i++)if (arr[i]>='a' && arr[i]<='z') printf("%c",arr[i]-num);else printf("%c",arr[i]);printf("\n");// 下面是方法二:把字符都处理完毕后,保存到数组里面,再统一输出。 for (i=0; arr[i]!='\0'; i++)if (arr[i]>='a' && arr[i]<='z') ...

17226592125:C语言编程,输入任意一串字符,判断是否都为字母。如果是,则输出。如果不...
应义答:while(1) //最外层要有个循环,使其可以重新输入 { fflush(stdin); //清空输入缓冲区,以免上一次循环输入的回车符干扰 printf("请输入字母:");for(i=0;i<10;i++) //i<10不是0<10 scanf("%c",&str[i]); //要用%c输入字符 str[10]=0; //最后加个结束符,以便输...

(编辑:本站网友)
相关推荐
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图
@ 百韵网