c语言 如何判断输入的是数字还是字母

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言 如何判断输入的是数字还是字母相关的知识,希望对你有一定的参考价值。

printf("请输入一串正整数并用空格分隔【不能大于100个】,如果您不想输入了,请键入任意字母。");
while()
scanf("&d ",a[1]);
接下来该怎么判断用户输入的是字母还是数字?
【当然如果有简单的可以让用户决定什么时候终止循环的方法就更好啦~谢谢!

需要准备的材料分别有:电脑、C语言编译器。

1、首先,打开C语言编译器,新建一个初始的.cpp文件,例如:test.cpp。

2、其次,在test.cpp文件中,输入C语言代码:char a = getchar(); getchar();

if (a <= '9' && a >= '0') printf("数字");else printf("字母");

3、然后,编译器运行test.cpp文件,输入数字,此时会成功判断输入内容为数字。

4、最后,输入字母,此时成功判断了输入内容为字母。

参考技术A # include <stdio.h>
# include <conio.h>       //引用头文件,Conio=Console Input/Output 简称Coni(input)o(output)
int main(void)

char ch;  //指定字符;
printf("请输入您想要判断的任意字符:"); //输出需求
ch = getchar(); //ch相当于一个字符变量,现在需要Get(得到)这个字符变量的内容
if (ch >= 'a' && ch <= 'z' || ch >= 'A' && ch <= 'Z') //判断:如果ch字符的值大于a,并且小于z;ch字符的值大于A,并且小于Z
printf("您输入的是字母!\\n"); //输出是字母
else if (ch >= '0' && ch <= '9') //另外如果ch字符的值大于0并且小于9的话
printf("您输入的是数字!\\n"); //输出是数字
else //否则
printf("你输入的是其他的字符!\\n"); //输出是其他字符
return 0; //程序结束

参考技术B int i=0;
while(1)

scanf("&d ",a[i]);
if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z')

break;

else

i++;

本回答被提问者采纳
参考技术C // 学习...

c语言中如何判断输入的是不是数字?

这个程序不难写,我告诉你思路和算法,你根据这个编写代码就可以了。
1.由于你输入的这一串数据可能都为数字,也可能包含其它字符,所以首先用一字符数组存放这个字符串。
2.用strlen函数计算这个字符串的长度,在此基础上借助for循环或while循环实现数组元素的遍历。
3.遍历每一个元素的同时用if语句判断这个元素的ascii码所在的范围是否在48~57之间,如果不在则中止循环,输出判断结果(即不是数字)。
4.如果最后一个元素仍然是数字,则整个字符串则为一个大数。
参考技术A 你写的这个有太多的错误。至于定义数组的时候a[n]这种错误我就不讲了
还有在循环里面(i=1;i<n;i++)
n没赋值就调用的错误我也不讲了
讲你的死循环问题
你没有给循环加一个限制条件
根据你continue的意思我暂时理解为
如果输入的不是数字
那么一直循环
重新输入
一直到你输入的是数字为止跳出循环
对吗?
while(1)
printf("请输入要查的值\n");
ret=scanf("%d",&n);
printf("ret=%d\n",ret);
if(ret==0)
printf("输入错误,请重新输入\n");
continue;

break;

这样就可以
如果输入的是数字
scanf的返回值为1
那么循环的第一次
不会进入if(ret==0)
也就是说
如果输入的是数字
直接执行break跳出循环
如果输入的不是数字
循环的时候执行语句if(ret==0)
然后执行continue
continue的意思是跳出当前循环继续下一次循环
即执行到continue之后从新循环而不会执行到break
以此类推
只要你输入的不是数字
则永远循环
输入的如果是数字
跳出循环
执行完毕。
大哥
如果小弟回答正常
给点分吧
多谢
=================================================================
另外对于一楼的同学
我必须有好的提醒你scanf()的用法以及返回值的相关问题
我想你肯定不知道
scanf("%d",&i)
如果你输入的是int型则返回1
否则返回0
换句话说即你输入的类型和scanf()里面预先定义的类型一致
则返回1
否则返回0
thank
you
参考技术B #include<stdio.h>
void
main()

unsigned
short
int
y;
printf("请输入1~3000年的任意一年:");
while(scanf("%u",&y)==1)
scanf("%u",&y);
if
(y<1||y>3000)printf("\n输入年份错误!\n\n");
else
if
((y%4==0&&y%100!=0)||(y%100==0&&y%400==0))printf("\n%u年是闰年!\n\n",y);
else
printf("\n%u年不是闰年!\n\n",y);

printf("请输入1~3000年的任意一年:");

以上是关于c语言 如何判断输入的是数字还是字母的主要内容,如果未能解决你的问题,请参考以下文章

c语言 输入一个字符,判断是字母,数字,还是特殊字符?

C语言,如何判断输入的是字母?ASCII字母对于值是65--90,97--122。

C语言怎样判断用户输入的是中文?

c语言中如何判断输入的是不是数字?

C语言如何判断输入数字的个数

c语言 怎么判断输入的是否数字?