#include
void main()
{
char c;
scanf("%c",&c);
c=getchar();
if((c>='A'&&c<='Z')||(c>='a'&&c<='z'))
printf("Letter");
else if(c>='0'&&c<='9')
printf("Number");
else if(c='(space)')
printf("Space");
else
printf("Other");
return 0;
}
scanf getchar输入了两次,c 会把缓冲区里的回车'\n'读进来,所以c总是空白,输出就是Space
去掉getchar()或scanf即可
你去掉c=getchar();这句废话就可以了.
scanf()以Space、Enter、Tab结束一次输入,不会舍弃最后的回车符(即回车符会残留在缓冲区中);
getchar()以Enter结束输入,也不会舍弃最后的回车符;
所以使用两个语句会使回车留着,以至于每次识别都是Space。
可以试试把c=getchar()改成getchar()或者丢掉
#include
int main()
{
char c;
scanf("%c",&c);
getchar();
if((c>='A'&&c<='Z')||(c>='a'&&c<='z'))
printf("Letter");
if(c>='0'&&c<='9')
printf("Number");
if(c='(space)')
printf("Space");
else
printf("Other");
return 0;
}