一只学C的萌新 发表于 2021-9-28 20:46:32

救救孩子

小甲鱼课后作业第11课
题目:要求用户输入一个字符,如果是大写字母,将其转换为小写;如果是小写字母,将其转换为大写;其他字符不做处理,并输出结果。
#include <stdio.h>

int main()
{
      char ch;

      printf("请输入一个字符:");
      scanf("%c", &ch);

      if (ch >= 'A' && ch <= 'Z')
      {
                ch = ch + 32; // ch加32,变成小写,然后赋值回ch
      }
      else if (ch >= 'a' && ch <= 'z')
      {
                ch = ch - 32; // 同上
      }

      printf("%c\n", ch);

      return 0;
}


if (ch >= 'A' && ch <= 'Z')这个怎么理解,ch不是字母吗,‘A'不是代表ASCII的A的数字吗,为什么一个字字母能和数字作比较

救救孩子,孩子已经傻了都。。

小伤口 发表于 2021-9-28 20:56:53

char ch;
ch是一个char类型的变量
scanf("%c", &ch);
是让用户输入一个字符并赋予到ch里
所以
if (ch >= 'A' && ch <= 'Z')
本身还是比较字符

一只学C的萌新 发表于 2021-9-28 20:58:25

小伤口 发表于 2021-9-28 20:56
char ch;
ch是一个char类型的变量
scanf("%c", &ch);


字符为什么能比较啊,意思就是说为什么能说A<B

小伤口 发表于 2021-9-28 21:13:20

一只学C的萌新 发表于 2021-9-28 20:58
字符为什么能比较啊,意思就是说为什么能说A

用的字符对应的ASCII的数字来比较的

一只学C的萌新 发表于 2021-9-28 23:05:33

小伤口 发表于 2021-9-28 21:13
用的字符对应的ASCII的数字来比较的

OK。我明白了,谢谢
页: [1]
查看完整版本: 救救孩子