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;

参考技术A

1、可以用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语言中如何判断输入的是字符还是数字的主要内容,如果未能解决你的问题,请参考以下文章

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

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

c语言判断输入的是不是是数字(不止一位)

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

C语言中如何实现验证输入的是不是为数字?

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