老牛来学习 发表于 2020-2-16 12:10:11

S1E15

#include <stdio.h>

int main()
{
      int ch;

      printf("请输入明文:");

      while ((ch = getchar()) != '\n')
      {
                if (ch >= 'a' && ch <= 'z')
                {
                        putchar('a' + (ch - 'a' + 3) % 26);
                        continue;
                }

                if (ch >= 'A' && ch <= 'Z')
                {
                        putchar('A' + (ch - 'A' + 3) % 26);
                        continue;
                }

                putchar(ch);      //这里的这个putchar(ch)有什么用啊,我把它删除也一样的效果啊,感觉多余???!
      }

      putchar('\n');

      return 0;
}

qiuyouzhi 发表于 2020-2-16 12:17:59

输出ch这个字符串

qiuyouzhi 发表于 2020-2-16 12:19:42

可能输入的不是a到z,而是别的东西
就直接输出

jackz007 发表于 2020-2-16 12:23:29

本帖最后由 jackz007 于 2020-2-16 12:24 编辑

      这么改也许能好理解一些?
#include <stdio.h>

int main()
{
      int ch                                                                  ;
      printf("请输入明文:")                                                ;
      while ((ch = getchar()) != '\n') {
                if (ch >= 'a' && ch <= 'z') ch = 'a' + (ch - 'a' + 3) % 26      ;
                else if (ch >= 'A' && ch <= 'Z') ch = 'A' + (ch - 'A' + 3) % 26 ;
                putchar(ch)                                                   ;
      }
      putchar('\n')                                                         ;
}
      当 ch 是英文大小写字母的时候,对字母进行加密处理,并进行显示,当 ch 不是英文大小写字母时,那就不加密,直接进行显示,是的,那个楼主有疑问的
      putchar(ch) ;
      就是专门用来显示非字母字符的,绝对不能删!
页: [1]
查看完整版本: S1E15