C语言程序设计入门16——初识字符输入输出3:简单字符加密

要想基于之前学习过的 C 语言知识实现文本流打印输出的功能,可以考虑使用一个循环结构,通过重复读取一个字符、打印一个字符的过程来实现,如图给出了这个思路的一个粗略流程图实现。

接下来,就是要看看是否可以使用已有的知识将图1中的流程编写成代码。从学习过的 C 语言知识来看,可以使用getcharputchar函数实现图1中“读入一个字符”和“打印刚刚读入的字符”这两个步骤。流程图中“还有字符需要读入”这个步骤要怎么判断呢。既然文本流包含的字符个数和行数不确定,就意味着不能使用一个表示字符个数的常量,或者换行符作为文本流结束的判断依据。

C 语言定义了一个符号常量EOF( End Of File 的缩写)可以作为文本流的结束标志。

  • EOF是 C 语言在头文件 <stdio.h> 中定义的一个特殊值;
  • 当输入结束时,getchar函数返回特殊值EOF作为结束符。

这样就需要对图1进行改进细化,从而得到最终的算法设计流程图。

设计成c语言程序即:

  1. #include<stdio.h>
  2. main(){
  3. int c;
  4. c = getchar();
  5. while(c != EOF) //当c不是结束符时,进入循环
  6. {
  7. putchar(c);
  8. c = getchar();
  9. }
  10. }

利用 C 语言中赋值表达式的值是左操作数(即赋值号左侧变量)的值的规定,可以将上述代码进行精炼

  1. #include<stdio.h>
  2. main(){
  3. int c;
  4. while((c = getchar()) != EOF) //先将读取的字符赋给变量c,再将c与EOF比较
  5. putchar(c);
  6. }

任务:

对键盘输入的一段字符进行简单加密变换后输出。 

要求:

获取键盘输入的一段字符,将每个字符依次变换成其在 ASCII 码表中后面第5个字符后,再顺序输出变换后的字符(不考虑变换后超出 ASCII 码编码范围的情况)。 

测试输入:

  1. qwert

预期输出: 

  1. v|jwy

参考: 

#include <stdio.h>
#include <stdlib.h>
main()
{
    char a;
    while((a = getchar())!= EOF)
    putchar(a+5);
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值