C语言利用switch语句实现输入一个字母,输出它前后紧挨着的字母

本文介绍了一个简单的C语言程序,该程序从屏幕上读取一个字符并判断是否为英文字母。若为字母,则输出其前后相邻的字母;若不是,则提示用户重新输入。通过switch-case结构实现了对特殊字符'a'、'A'、'z'和'Z'的处理。

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

题目来源:大工慕课 链接
作者:Caleb Sung

题目要求

从屏幕上输入一个字符,如果不是英文字母,输出“这不是英文字母,请重新输入”,然后重新输入字符,如果是英文字母,以大写字母的形式输出字母表中它前面的字符和后面的字符,如果输入的字符为‘a’或‘A’,输出“没有前面的字母”,如果是‘z’或‘Z’输出“没有后面的字母”(如果使用的VC++不支持中文,则把相应的中文输出换成英文输出)。

题目提示

如输入不是字母,则重新输入,这时要考虑回车的问题,要先接收上一次输入的回车字符。

注意事项

  • 不要忘记switch每个选择分支(case)后面加一个break;,否则会按照各种case的顺序输出各种分支的结果……
  • default分支下的else部分即大写字母,写成else if(ch>'A'&&ch<'Z')效果也是一样的

解答示范

#include<stdio.h>
int main()
{
    char ch,ch1,ch2;
    printf("请输入一个字符。\n");
    ch=getchar();
    if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
    {
        switch(ch)
        {
            case 'a':
                printf("没有前面的字母。\n");break;
            case 'A': 
                printf("没有前面的字母。\n");break;
            case 'z':
                printf("没有后面的字母。\n");break;
            case 'Z':
                printf("没有后面的字母。\n");break;
            default:
                {
                    if(ch>'a'&&ch<'z')
                    {
                        ch1=ch+'A'-'a'-1;
                        ch2=ch+'A'-'a'+1;
                        printf("这个字母两边的字母分别是%c和%c。\n",ch1,ch2);
                    }
                    else
                    {
                        ch1=ch-1;
                        ch2=ch+1;
                        printf("这个字母两边的字母分别是%c和%c。\n",ch1,ch2);
                    }   
                }
        }
    }
    else
        printf("这个字符不是一个英文字母。\n");
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值