一个程序,它返回之前和之后的字母

时间:2017-11-18 15:18:47

标签: c++ c char stdio letters

我是编程新手。任务是制作一个程序,将给定字母的pred和succ字母作为输出数据返回。输入数据是b和z之间的任何字母。我已将每个字母b-z声明为自身的变量,并将输入数据声明为字母。但是我该怎么办?我能想到的一种方法是将字母定义为彼此的前辈/后继者(对于每个字母)。但在我看来,这需要的代码多于必要的代码。

#include <stdio.h>

int main(void)
{

    char b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,k,r,s,t,u,v,z;

    char letter;

    printf("Type a letter between b and z> ");

    scanf("%c", &letter);

}

1 个答案:

答案 0 :(得分:2)

字母的ASCII表示是连续的。所以你能做的就是

  • 获取输入
  • 为其添加1以获得继任者
  • 将1减去它以获得前任
  • 打印它们。
#include<stdio.h>
int main(){
    char c;
    scanf("%c",&c);
    if( c<='z' && c>='b')
        printf("succ  = %c pred = %c", c-1, c+1);  
    else
        printf(" You didnt enter between a and z"); 
    return 0;
}