KiKi想判断输入的字符是不是字母,请帮他编程实现。
#include <stdio.h>
int main()
{
char ch ='0';
while((ch = getchar()) != EOF)
{
getchar(); //吸收enter键
if((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
printf("%c is an alphabet.\n",ch);
else
printf("%c is not an alphabet.\n",ch);
}
return 0;
} #include<stdio.h>
#include<string.h>
#include<ctype.h>
int main()
{
char a;
while((a=getchar())!= EOF)
{
if(a!='\n') //主要判断是不是回车
{
if(islower(a)>0||isupper(a)>0) printf("%c is an alphabet.\n",a);
else printf("%c is not an alphabet.\n",a);
}
}
return 0;
}
//可以字符函数islower和isupper进行判断 如果是返回值的就是大于0的 int main()
{
char a = 0;
while (scanf(" %c", &a) == 1) //在格式字符串中加入空格可以避免多组输入时候回车键被判断为字符影响代码正常判断运行
{
if ((a>=65&&a<=90)||(a>=97&&a<=122))//因为大写字母的ASCII码范围是65~90,小写字母的ASCII码范围是97~122。
//注意,逻辑与(&&)的优先级高于逻辑或(||),所以要用括号把两个子表达式分开。
//用 scanf(“%c”, &a) 来读取字符 a,但是这样会把空格和换行符也当作字符读入。所以当你输入一个字母后,按下回车键,
//其实你输入了两个字符,一个是字母,一个是换行符。scanf 会把这两个字符都存入 a 中,然后执行两次 while 循环。
//此处为了避免这个情况还可以使用getchar()函数
{
printf("%c is an alphabet.\n", a);
}
else
{
printf("%c is not an alphabet.", a);
}
}
return 0;
}