判别输入字符是否为英文字母

判别输入字符是否为英文字母(包括大小写),如果是字母,输出它在字母表中对称位子的字母。例如输入a,输出z,输入B,输出Y。若该字符不是英文字母,则输出"It is not a letter."字样

参考GPT和自己的思路:这个问题可以使用ASCII码进行判断,ASCII码中英文字母的编码范围是6590和97122。可以使用Java中的char类型和ASCII码进行比较来实现此功能。具体的实现可以参考下面的代码:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        char c = sc.next().charAt(0);
        if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) {
            int sym = 'a' + 'z' - c; //求对称位置的ASCII码
            if (c >= 'A' && c <= 'Z') { //判断大写字母
                sym -= 32;
            }
            System.out.println((char) sym);
        } else {
            System.out.println("It is not a letter.");
        }
        sc.close();
    }
}

以上代码实现了通过判断输入的字符是否为英文字母,并输出其在字母表中对称的字母。如果不是英文字母,则输出"It is not a letter."。

回答如下,记得采纳哦!

img

#include <stdio.h>

int main()
{
    char c;
    scanf("%c", &c);
    if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
    {
        if (c >= 'a' && c <= 'z')
            printf("%c", 'z' - (c - 'a'));
        else
            printf("%c", 'Z' - (c - 'A'));
    }
    else
        printf("It is not a letter.");
    return 0;
}

供参考:

#include <stdio.h>
#include <ctype.h>
int main()
{
    char ch;
    scanf("%c", &ch);
    if (isalpha(ch)) {
        if (islower(ch))
            printf("%c", 'z' - ch + 'a');
        else
            printf("%c", 'Z' - ch + 'A');
    }
    else
        printf("It is not a letter.");
    return 0;
}