BC35 判断字母

题目:BC35 判断字母

描述
从键盘任意输入一个字符,编程判断是否是字母(包括大小写)。
输入描述:
输入包括一个字符。
输出描述:
输出该字符是字母(YES)或不是(NO)。

示例1
输入:H
输出:YES

示例2
输入:9
输出:NO

代码:

#include<stdio.h>
int main() {
    int ch = 0;
    while ((ch = getchar()) != EOF) {
        if ((ch >= 'a') && (ch <= 'z') || (ch >= 'A') && (ch <= 'Z'))
        {
            printf("YES");
        }
        else
        {
            printf("NO");
        }
        getchar();	//1号位
    }
}

考点:getchar()函数
getchar()是在输入缓冲区内读取数据,读取的过程如下:

开始键盘还未输入时,输入缓冲区还没有内容,此时表现为光标闪烁等待输入。

输入一个字符(如A)后敲回车,此时缓冲区内的内容为[A \n]。

getchar()第一次拿到[A]并显示在桌面上。

getchar()第二次拿到[\n]

因此这道题在1号位处需要设置一个getchar()函数来吸收[\n],阻止影响结果

补充:scanf()的返回值为实际获取到的数据元素的个数,若获取失败则返回EOF。

scanf默认读到空格结束

方法2:使用库行数isalpha()

该函数是专门用来判断是否为字母的函数,是字母返回非0值,不是则返回0

int main()
{
    int ch = 0;
    while((ch=getchar()) != EOF)
   {
        //使用库函数
        if(isalpha(ch))
            printf("YES\n");
        else
            printf("NO\n");
        getchar();
   }     
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值