PTA 7-2字符类型判断(C语言,通过switch结构来实现)

博主分享了一篇关于C语言switch语句中使用区间判断实现字符类型检查的文章。通常,case后面只能接整型常量或常量表达式,但博主发现一种方式可以接范围表达式,如case 65...90。通过这种方法,博主成功地用switch结构完成了字符类型的判断,包括大写字母、小写字母、数字和其他字符,并提供了简洁的代码示例。此方法避免了使用if结构,使代码更紧凑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

博主现在仍为一名大学生,某次在完成老师布置的PTA选择结构练习时遇到了这道题。博主通过拍照搜题和请教往届学姐,都是通过if结构来实现的。博主想要和他们有点不一样,便打算使用switch结构来实现(主要原因是因为自己先写了switch结构的代码,实在不想再写一遍if结构的代码了)。博主请教了很多人都说case后面只能接整型常量或常量表达式,所以导致一直过不去。就在快要放弃的时候,我在优快云上看到一篇文章说case后可以接范围表达式,文章发布者名为铁头小哥,具体可前往他的博客进行查看(链接在下面)。用法为case a ... b(a、b均为数字,且省略号前后两侧有空格)通过博主简单地修改之后,最终,博主使用switch结构完成这道题目。C语言switch case语句的case后面不能接范围?_铁头小哥的博客-优快云博客_case后面可以跟范围吗

 问题如下:

从键盘输入一个字符,判断该字符是否大写字母、小写字母、数字字符或其他字符。分别输出对应的提示信息。

输入格式:

输入一个字符。

输出格式:

如果该字符是大写字母,则输出“upper”;若是小写字母,则输出“lower”;若是数字字符,则输出“digit”;若是其他字符,则输出“other”。(输出不含双引号)。

输入样例:

E

输出样例:

upper

 解题思路:首先要知道的是小写字母的范围是97-122,大写字母的范围是65-90,数字字符的范围是48-57。其他的只需要使用default即可。我们只需定义一个字符常量,再通过键盘输入,最后再通过选择结构来判断字符类型。

代码十分简单,如下:

#include <stdio.h>
#include <stdlib.h>
int main()
{
    char i;
    scanf("%c",&i);
        switch (i)
    {
    case 65 ... 90:
        printf("upper");
        break;
    case 97 ... 122:
        printf("lower");
        break;
    case 48 ... 57:
        printf("digit");
        break;
    default:
        printf("other");
    }
    return 0;
}

代码长度要远远短于if结构的长度,且符合PTA的结构要求。这是博主第二次发表文章,可能存在某些问题,欢迎各位指出,谢谢!

2022年11月27日  

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值