题目
描述
KiKi想判断输入的字符是不是字母,请帮他编程实现
输入描述:
多组输入,每一行输入一个字符。 输出描述: 针对每组输入,输出单独占一行,判断输入字符是否为字母,输出内容详见输出样例。
示例1
输入:
A
6
输出:
A is an alphabet.
6 is not an alphabet.
我的方法:
#include<stdio.h>
int main() {
int str =0;
while (scanf("%c", &str)!=EOF)
{
if (str >= 'a' && str <= 'z' || str >= 'A' && str <= 'Z')
{
printf("%c is an alphabet.\n", str);
}
else
{
printf("%c is not an alphabet.\n", str);
}
getchar();
}
return 0;
}
经验分享来了
正规答案方法:
#include<stdio.h>
int main() {
int ch = 0;
while ((ch = getchar()) != EOF)
//getchar( )是从键盘接收一个字符然后以ASC码值的形式存到ch里
//小知识:如果2为字符的话,数字2这个字符的ASC码值为50
//计算公式为: 数字+48(‘0’)=ASC码值
这里的48其实是字符0的ASC码值
{
//判断字母
//if((ch>=‘A’ && ch<=‘Z’) || (ch>=‘a’ && ch<=‘z’))
if (isalpha(ch)) //判断字母的内置函数
{
printf(“%c is an alphabet.\n”, ch);
}
else
{
printf(“%c is not an alphabet.\n”, ch);
}
/*清理掉\n,因为当你输入一个值的时候,要按下回车键才能让上方while循环里的getchar开始接收,而回车键相当于\n,所以要运用getchar来清理输入缓冲区,防止\n影响下一次getchar的取值/getchar();
}
return 0;
}
萌新小白结合大佬的知识写的,请大佬们多多指教