我做了一道c语言题,给我审阅下;

来源:百度知道 编辑:UC知道 时间:2024/06/28 17:36:12
是这样的:
判断 ascii码小于32为控制字符;
在‘0’和‘9’之间为数字;
在‘A'和'B'之间为小写字母,其余则为其他字符;

程序如下:
#include<stdio.h>
void main()
{
char c;
printf("input a charactar:\n");
c=getchar();
if(c<32)
printf("为控制字符\n");
else if(c>='0'&&c<='9')
printf("为数字\n");
else if(c>='A'&&c<='Z')
printf("为大写字母\n");
else if(c>='a'&&c<='z')
printf("为小写字母\n");
else
printf("为其他字符\n");
}
看看这样做对吗?
不对的话,问题出在哪》?

已阅,运行了一下,没有问题的。

试验了数字,大小写,控制字符,没有问题的。

但是一些控制字符貌似无无法输入,输入 tab 可以正常输出。

一般的控制字符由于无法输入,直接按回车显示的是 回车的控制字符。

有问题的,你判断的依据是ASCII值,你需要查表确定范围,不能凭想象,其他的我倒忘记了,那个判断数字的肯定有问题。

基本上没有问题的

#include<stdio.h>
void main()
{
char c; ///最好把c声明为int,因为getchar()返回int类型的结果

printf("input a charactar:\n");
c=getchar();
if(c==EOF)
printf("为结束符号\n");
else if(c<32)
printf("为控制字符\n");
else if(c>='0'&&c<='9')
printf("为数字\n");
else if(c>='A'&&c<='Z')
printf("为大写字母\n");
else if(c>='a'&&c<='z')
printf("为小写字母\n");
else
printf("为其他字符\n");
}

在windows环境下,按ctrl+C,getchar()返回EOF,也就是-1

可以啊,能实现你要的功能。

对了吧,有什么问题么?能说明一下么……

对的