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

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

题目要求

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

题目提示

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

注意事项

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

解答示范

#include
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;
}

你可能感兴趣的:(大学C语言程序设计,C语言入门基础)