在c语言中怎样判断变量是字符还是数字

2021-03-08 20:18:34 字数 5935 阅读 9008

1楼:匿名用户

首先,看定义,应该有定义变量的类型啊;

其二,可以输出它的ascii码,根据它的ascii码直来判断,32~126(共95个)是字符(32sp是空格),其中48~57为0到9十个阿拉伯数字;65~90为26个大写英文字母,97~122号为26个小写英文字母,具体查阅课本后的附表。

其三,可以用sizeof()函数测长度,字符都是一个字节,数字嘛,不同类型字节数不同,同一类型字节数在不同编译系统中也不同,这个你可以查得到的。

2楼:匿名用户

使用c库函数,isdigit,isalphaisdigit

语法:#include

int isdigit( int ch );

功能:如果参数是0到9之间的数字字符,函数返回非零值,否则返回零值.

char c;

scanf( "%c", &c );

if( isdigit(c) )

printf( "you entered the digit %c\n", c );

isalpha

语法:#include

int isalpha( int ch );

功能:如果参数是字母字符,函数返回非零值,否则返回零值。

char c;

scanf( "%c", &c );

if( isalpha(c) )

printf( "you entered a letter of the alphabet\n" );

3楼:匿名用户

int isalpha(int ch),判断字符ch是否为英文字母,当ch为英文字母a-z或a-z时,返回非零值,否则返回零。

int isdigit(char c); 判断字符c是否为数字,当c为数字0-9时,返回非零值,否则返回零。

4楼:匿名用户

根据他的ascii码值判断,比如'a'=97

32~126(共95个)是字符(32sp是空格),其中48~57为0到9十个阿拉伯数字;65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。

5楼:郭亦城①煲

楼主是什么意思?定义变量时就要指定数据类型啊,不然编译通不过。既然指定了数据类型,那不就不是知道是字符还是数字还是其他。

6楼:

根据他的ascii码值判断

7楼:匿名用户

字符 不就 是数字吗

int 和char 可以转换

8楼:匿名用户

char为字符,int,long,short为数字

9楼:殷念寒缪盈

转义字符就那么多

分为两类

一个是固定字母的

比如\t

\n这个就只能背了

没什么办法

另一类就是通用的,包括8进制

16进制

8进制的

\ooo

后面的ooo是1到3个合法的8进制字符。

16进制

\xhh

后面的hh是1到2个合法的16进制字符。

符合以上的

就是合法的。

否则非法。

c语言中,怎么判断变量的类型?如何判断一个变量是int还是long int?(不通过声明)

10楼:yesyes科

1、首先在duc语言中,long long 是c99标准对整形类zhi型做的扩展,dao每个long long类型的变量占8字节版,64位。如下图使用%lld输出。权

2、这种输出方法的结果如下图所示,可以看到输出结果是0,而很明显输出的结果不应该为零,也就是说输出结果是错误的。

3、这时要看下是不是函数有问题,采取的方法如下图所示。

4、修正之后的输入结果下图所示,通过这个过程,得出的结论是输出long long类型的数据应该使用prinf的%lld格式,注意输出函数不要写错。

5、最后输出bool类型的数据,其使用printf的输出格式如下图所示。

6、最后输出结果如下图所示,就完成了。

11楼:匿名用户

标准c里是没有方法获得一个变量的类型的,在gcc扩展c中有typeof可以使用,在linux的很多地方都用到了typeof,和sizeof类似。

12楼:煭鯖

虽然用这个sizeof()函数复

可以通过字节制数判断!

bai但是你说int 和 long int这里就会出du现问题!应zhi为int 和long int 都是4个字节dao

!还有float!只能说sizeof()可以区分字符和数字。至于要去区别long int 和int 有点难!不必纠结这个吧...

13楼:舆影

可以用单目运算符sizeof(变量名)进行判断,16位机下int是2字节,32位机下是4字节,long int是8字节

14楼:匿名用户

用typeid的成员函数解决

15楼:金色潜鸟

c++ 里有。c 我没

试过。版

调 typeid()。 头文权件#include#include

#include

using namespace std;

main()

16楼:夕心木

同上,使用sizeof()函数判断

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

17楼:非常可爱

可以使用**进行判断:

#include

intmain()

return0;

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

intdigit;

printf("pleaseinputainteger\n");

intret=scanf("%d",&digit);

if(0==ret)

18楼:四舍**入

1、可以用sa**f或gets函数直接接收输入的字符串,然后用循环遍历字符串中每一个字符,判断其是字母还是数字。

2、可以用循环调用getch()或getchar()函数来一个一个字符的接收输入,同时判读输入的是字母还是数字。

3、假设字符c,满足 (c>='a'&& c<='z')|| (c>='a' && c<='z')就是字母,满足 (c>=0 && c<=9)就是数字。

19楼:匿名用户

1 通过getchar读入一个字符。

2 对字符判断,如果字符在'0'到'9'之间,则为数字,否则为字符。

3 根据判断结果,输出程序运行结果。

**:int main()

20楼:匿名用户

首先当作字符逐个读入字符串字符串中,读到分隔符(如白字符,逗号等)后,判断这个字符串中各个字符是否满足条件即可(0 -- 9为十进制数,含有abcdef或abcdef则为十六进制数)。

21楼:匿名用户

isalnum

语法:#include

int isalnum( int ch );

功能:如果参数是

数字或字母字符,函数返回非零值,否则返回零值。

isalpha

语法:#include

int isalpha( int ch );

功能:如果参数是字母字符,函数返回非零值,否则返回零值。

isdigit

语法:#include

int isdigit( int ch );

功能:如果参数是0到9之间的数字字符,函数返回非零值,否则返回零值isxdigit

语法:#include

int isxdigit( int ch );

功能:如果参数是十六进制数字字符(即:a-f, a-f, 0-9),函数返回非零值,否则返回零值。

另外,可以根据ascii的值来判断:

48~57是数字 ,0~31是控制字符,其他....

22楼:匿名用户

这个看着简单的问题,其实涉及的东西不少。由于种种原因, c的输入部分,如scanf等,安全问题很大, 所以如果可能,就如前面有人建议的那样,把用户输入当字符串一起读入,然后自己处理。下面的**用fgets读入全部输入,然后用strtok分割,对分割后的字符串再做是否数字串的检查。

(注:有人认为strtok不安全,其实不一定,要看如何使用,如果可能采用支持新的c11的安全库xx_s结尾的,或自己写,或采用第3方开源的库都是可以的)。下面是一个完整的例子:

#include

#include

#include

#include

#definemax_input1024intisnumstring(constchar*s);

intmain(intargc,char**argv)printf("numericstringnumber:%d\n",count_numstring);

}return0;

}intisnumstring(constchar*s)}

returnretcode;

}运行结果:

enterstrings,entertocontinue,ctrl-ctoexit.

123

numericstringnumber:31,2s.3|4#5

numericstringnumber:4

23楼:匿名用户

这个要看你的**是怎么处理输入的

比如int a = 0;

scanf("%d", &a);

这就只能接收一个整数输入

------------

最好贴出你的**,也许你提出的问题不是你真正面对的问题。

24楼:狮子

具体需要分析你写的程序,因为如果你规定第二个输入为字符型,那么12 12a间的空格就是第二个数据,自然你看不见第二个输入数据。这只是一种可能。

25楼:匿名用户

建议你查一下 c函数库 可以用 isdigit 来判断是否为数字

26楼:李莞朋顺

判断是不是字符c可以使用:

if(g=='c')

满足这个便是c

注意大小写

27楼:龙鹤旗柔婉

#include

intmain()

28楼:幻翼高达

需要准备的材料分别有:电脑、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、最后,输入字母,此时成功判断了输入内容为字母。

29楼:钞润桓鸿晖

对了,刚才经过试验发现ctype.h里面的函数都不能判定输入的字符。。。拿isalpha来说,其函数原型为

intisalpha(int

ch);其规定了ch为int型的,如果输入是字符的话就会程序错误,所以只能在程序本身里先赋好值,就像ch=\'a\'

这样判断才行,而输入的东西是不确定的,只有先赋值才不会有函数类型的判断错误。。。不知道本人说的对不,这是我刚才试出来的,我刚学c不久。。。

c++中怎么判断string类型的字符串变量是否为数字

1楼 庄政警 遍历每个字符copy,判断是否bai在 0 9 就好 include include using namespace std bool strisnum string s return true int main c 中怎么判断一个string类型的字符串变量是否为数字? 2楼 匿名用...

假的翡翠是用哪些原料做成的?应该怎么做啊!谢谢啊

1楼 翡翠鉴别零售 翡翠b货c货或b c货,通常也被叫做假货,这料是用次品翡翠原料经酸洗等工艺做成的,翡翠原有的结构被破坏, 还有些冒充翡翠的,通常有马来玉,冬凌玉,韩玉,水沫子等等。 2楼 匿名用户 玻璃 大理石 等一些杂质很多的石质材料 好一点的就容 脏一点的翡翠原料 酸洗 注胶 用激光打色 一...

C语言中所说的字符常量和字符串常量是什么意思

1楼 匿名用户 一个字符常量就是一个能在计算机里表示的字符用单引号括起来,比如说 a b 9 等等,字符串就是一个字符序列,用双引号括起来比如说 yujihui abcdefg 6985 就是一个字符串常量。 2楼 匿名用户 字符常量使用单引号引用,其中只能包含一个字符,例如 a 是一个字符常量,表...