C语言

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

2019-11-24  本文已影响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:看例子不要只抄代码,要善于读懂代码,做到举一反三。

上一篇下一篇

猜你喜欢

热点阅读