c语言中如何判断输入的是字符还是数字
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言中如何判断输入的是字符还是数字相关的知识,希望对你有一定的参考价值。
比如我输入的12 12a,怎样在屏幕上显示我输入了1个数而不是俩?
可以使用代码进行判断:
#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语言判断输入是否是数字
intdigit;
printf("pleaseinputainteger\\n");
intret=scanf("%d",&digit);
if(0==ret)
printf("youshouldinputainteger\\n");
system("pause");
return0;
参考技术A1、可以用sacnf或gets函数直接接收输入的字符串,然后用循环遍历字符串中每一个字符,判断其是字母还是数字。
2、可以用循环调用getch()或getchar()函数来一个一个字符的接收输入,同时判读输入的是字母还是数字。
3、假设字符c,满足 (c>='a'&& c<='z')|| (c>='A' && c<='Z')就是字母,满足 (c>=0 && c<=9)就是数字。
扩展资料:
getch():
所在头文件:conio.h
函数用途:从控制台读取一个字符,但不显示在屏幕上
函数原型:int getch(void)
返回值:读取的字符
例如:
char ch;或int ch;
getch();或ch=getch();
用getch();会等待你按下任意键,再继续执行下面的语句;
用ch=getch();会等待你按下任意键之后,把该键字符所对应的ASCII码赋给ch,再执行下面的语句。
参考资料来源:百度百科-getch()
参考技术B 对了,刚才经过试验发现ctype.h里面的函数都不能判定输入的字符。。。拿isalpha来说,其函数原型为int
isalpha(int
ch);其规定了ch为int型的,如果输入是字符的话就会程序错误,所以只能在程序本身里先赋好值,就像ch=\'a\'
这样判断才行,而输入的东西是不确定的,只有先赋值才不会有函数类型的判断错误。。。不知道本人说的对不,这是我刚才试出来的,我刚学c不久。。。 参考技术C
需要准备的材料分别有:电脑、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、最后,输入字母,此时成功判断了输入内容为字母。
参考技术D 1 通过getchar读入一个字符。2 对字符判断,如果字符在'0'到'9'之间,则为数字,否则为字符。
3 根据判断结果,输出程序运行结果。
代码:
int main()
int c = getchar();
if(c >= '0' && c<='9') printf("%c 是数字\n",c);
else printf("%c 是字符\n",c);
C语言怎样判断用户输入的是中文?
我试过好多方法了,都不行啊。比如我想过用sizeof() 和 strlen() 我本以为strlen()如果接受一个中文文字就返回1,然后用sizeof()的返回值除以strlen()的返回值就是2,如果不是中文返回的是1,这样是不行的,因为当strlen()接受一个中文文字时返回的也是2。晕了!
判断输入的是中文还是英文很简单:1、首先,要确认数据类型是字符型。
2、英文或一些特殊字符的ASCII码小于0x7f。
3、中文是以区位码形式出现的,ASCII码大于0xa0。
比如:
#include <stdio.h>
#include<string.h>
int main()
char* ss="hello世界";
int i;
while(*str)
if((unsigned)*str>=161) str+=2;i++;
else str++;
printf("Chinese char number is:%d\\n",i);
return 0;
参考技术A //给一个例子。希望对你有帮助#include <stdio.h>
#include <string.h>
void main()
char str[]="123abc万高超.,!";
char strBuf[20]=0;
int j=0,nCount=(int)strlen(str);
for(int i=0;i<nCount;i++)
//如果小于0则是中文,且后面一个也是中文。
if(str[i]<0)
strBuf[j++]=str[i++];
if(i<nCount)strBuf[j++]=str[i];
printf("中文字符有%d个,它们是:\"%s\"",strlen(strBuf)/2,strBuf);
参考技术B 简单判断:大于127,但是只限中文和英文两种情况下
以上是关于c语言中如何判断输入的是字符还是数字的主要内容,如果未能解决你的问题,请参考以下文章