HZY222 发表于 2022-4-4 14:49:04

求大佬解答

1. 写一个程序,将用户输入的英文句子中的字母大小写进行调换(即大写字母转换为小写字母,小写字母转换为大写字母)。
提示:你可能会需要使用 putchar 函数。,

int main()
{
      int ch;

      printf("请输入一行英文句子:");

      while ((ch = getchar()) != '\n')
      {
                if (ch >= 'A' && ch <= 'Z')
                {
                        ch = ch - 'A' + 'a';
                }
                else if (ch >= 'a' && ch <= 'z')
                {
                        ch = ch - 'a' + 'A';
                }

                putchar(ch);
      }

      putchar('\n');

      return 0;
}


没看懂大小写转换那一步为什么-A+a啊,啥意思哦

lizhenghui 发表于 2022-4-4 15:03:39

理解ASCII码 的话 用+32就行
这个的意思其实是ch+‘a'-’A‘
就是把大小写字母之间的差值补上 不知道你懂了没有

jhq999 发表于 2022-4-4 15:03:45

本帖最后由 jhq999 于 2022-4-4 15:04 编辑

假如 ch='B',ch-'A'=1,'a'+1='b',所以ch=ch-'A'+'a'='b'

LeBronSs 发表于 2022-4-4 15:04:17

参照ASCLL码理解

HZY222 发表于 2022-4-4 15:36:09

lizhenghui 发表于 2022-4-4 15:03
理解ASCII码 的话 用+32就行
这个的意思其实是ch+‘a'-’A‘
就是把大小写字母之间的差值补上 不知道你懂 ...

谢谢
页: [1]
查看完整版本: 求大佬解答