美文网首页C语言
郑州轻工业大学oj题解(c语言)1023-1026 ASCII码

郑州轻工业大学oj题解(c语言)1023-1026 ASCII码

作者: 缘点点 | 来源:发表于2019-11-24 12:36 被阅读0次

    郑州轻工业大学oj题解(c语言)-1023-1026 ASCII码系列(一)

    1023-1026本质上都是有关ASCII码的问题,故此处放在一起讨论。
    ASCII码,简称asc码,是C语言的重要部分,通常用于加密。

    ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位[二进制数]来表示所有的大写和小写字母,数字0 到9、标点符号

    例如在1023-1026这几题中就需要用到ASCLL码来完成字符的表示与转换。

    首先我们看1023题。

    1023: 大小写转换

    输入一个字母,若是小写字母,则变为大写输出,否则,原样输出。

    输入
    输入为一个字符。

    输出
    按题目要求输出一个字符,单独占一行。

    代码如下:

    #include<stdio.h>
    int main()
    {
        char ch;  
       scanf("%c",&ch);//此处表示输入一个字符给ch
        if(ch >= 'a' && ch <= 'z')//判断是否为小写字母
            ch -= 32;//32为大写字符与小写字符之间的差值。
            printf("%c\n", ch);
        return 0;
    }
    

    从题目中我们可以看到,题意要求我们判断字符是否是小写字母,并完成小写转换为大写的操作。
    所以,我们先通过if语句判断了输入的字符是否在小写字母的区间,如果不是,则将字符的ASCII码-32得到其相应的大写字母的ASCII码(相应的大写转小写也同理)。
    这里要强调的是,在输入为字符时,任何加减乘除的操作都只在ASCII码里进行(即是其字符的ASCII码完成计算过程)

    1024: 计算字母序号

    题目描述
    输入一个英文字母(可能是大写,也可能是小写),输出该字母在字母表中的序号(’a’和’A’的序号为1)。

    输入
    输入只有一个英文字母。

    输出
    输出一个整数,表示该字母在字母表的序号,输出单独占一行。

    代码如下:

    #include<stdio.h>
    int main()
    {
        char ch;  
        int s;
       scanf("%c",&ch);//此处表示输入一个字符给ch
        if(ch >= 'a' && ch <= 'z'){
              s=ch - 'a' + 1;
              printf("%d",s);
    }//判断是否为小写字母,并输出其序号
    else if(ch >='A'&&ch<='Z'){
             s=ch-'A'+1;  
            printf("%d",s);
    }//判断是否为大写字母,并输出其序号
        return 0;
    }
    

    这里为了方便大家理解,用了大家更好懂的写法。首先根据题意,输入的字母大小写是不确定的,所以需要我们先去判断大小写。然后判断完大小写后,把输入的字符减去这个字符的第一个字母,(大写减A,小写减a)然后加上1即可得到这个字符在其字母表里的序号。

    由于篇幅问题1025.1026留到第二篇再做讲述。

    PS:看例子不要只抄代码,要善于读懂代码,做到举一反三。

    相关文章

      网友评论

        本文标题:郑州轻工业大学oj题解(c语言)1023-1026 ASCII码

        本文链接:https://www.haomeiwen.com/subject/atdlwctx.html