要想基于之前学习过的 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;
}

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

  1. C语言程序设计入门08——初识格式化输出1:格式化输出PI值

    格式化输出函数 printf() 作为 C 程序的标准格式化输出函数,printf()的函数声明包含在头文件 <stdio.h> 中,函数的一般形式为:  printf ( <待打印 ...

  2. C语言程序设计入门11——初识格式化输入1:求圆面积

    格式化输入函数 scanf 使用方法: 作为 C 程序的格式化输入库函数 ,scanf()的函数声明包含在头文件 <stdio.h> 中,函数的一般形式为: scanf(<格式说明字 ...

  3. C语言程序设计入门12——初识格式化输入2:求组合图形面积

    任务: 计算组合图形面积. 要求: 计算一个由长方形和半圆扇形组成的图形面积,图形如下所示. 格式要求 : 长方形的长和宽均为单精度浮点数 , 其值由控制台输入 ( 先输入长后输入宽 ),输入的两变量 ...

  4. C语言程序设计入门教程

    C语言程序设计入门教程 目录 语言分类 C语言特点 最简单的C语言程序 注释方式 C语言程序的结构 程序设计的任务阶段 选择结构程序设计 关系运行算符 逻辑运算符 switch语句 条件运算符 数据类 ...

  5. 中国大学MOOC C语言程序设计入门 第8周编程练习第二题 GPS数据处理

    中国大学MOOC C语言程序设计入门 第8周编程练习第二题 GPS数据处理 题目内容 解题思路 这个题的题目真的是我学习C语言以来见过的最长的题目了,很多人的第一感觉可能是无从下手,所以让我们先来整理 ...

  6. C语言程序设计入门之抽象编程

    C语言程序设计入门之抽象编程 前言 1. 程序入门抽象:变量和过程抽象 2.程序结构抽象:顺序.选择.循环 3.程序进阶抽象:问题(算法)抽象 4.软件工程抽象:函数(模块或问题分解)抽象 5.面向对 ...

  7. 明解C语言(入门)——初识C语言

    明解C语言(入门)--初识C语言 文章目录 明解C语言(入门)--初识C语言 一.显示计算结果 二.变量 三.输入和显示 一.显示计算结果 1.通过字符序列创建出的程序称为源程序,用来保存源程序的文件 ...

  8. C语言初中入门,[初中教育]C语言程序设计入门篇.ppt

    [初中教育]C语言程序设计入门篇 单 词 main 主函数 int 整型 float 浮点型 char 字符型 printf 输出函数 scanf 输入函数 if 如果 else 否则 for whi ...

  9. C语言程序设计入门学习六步曲,六步带你入门C语言

    C语言是面向过程的,而C++是面向对象的 C和C++的区别:         C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理 ...

最新文章

  1. projecteuler_problem10
  2. 每个程序员都必须知道的 8 种数据结构
  3. Android中WIFI开发总结(一)
  4. 多路复用select和epoll的区别(转)
  5. 传统网站性能优化的三种手段
  6. 从零开始学python数据分析-从零开始学Python数据分析与挖掘 PDF 下载
  7. Mybatis通用Mapper
  8. SAP C4C里嵌入SAP Analytics Cloud的案例
  9. Jupyter Notebook 入门指南
  10. div超出不换行_div+CSS设置一行内文字超过宽度不换行且不显示
  11. 自动设置图片的序号_编写学位论文时如何给表格和图片自动编号
  12. JavaGC(1)—深入浅出Java垃圾回收机制
  13. css 文本两端对齐终极解决方案--一丝冰凉
  14. ae导出json_AE脚本导出json格式的Web动画工具 Bodymovin v5.7.0 + 使用教程【资源分享1171】...
  15. 最大后验估计_极大似然估计 V.S. 贝叶斯估计
  16. oracle11g教程视频教程,最新oracle11g DBA 开发和应用数据库视频教程_IT教程网
  17. SpringCloud入门教程(全集)
  18. 海康相机IP搜索协议研究
  19. 无法读源文件或磁盘_磁盘阵列RAID1+0和RAID0+1的区别
  20. python项目源码 日程管理_怎么用python写作息时间安排呢?

热门文章

  1. 学认五线谱-基本乐理
  2. iPhone 在手,优势在沃
  3. 远程桌面连接不上,三种方法教你重启服务器
  4. 测试地图最短路径搜索(二):换个稍微复杂点的路径模板
  5. 关于VMware 虚拟机使用时,一打开虚拟机就重启问题-Win11
  6. JQuary学习之路---初始JQuary
  7. Spring Cloud Netfilx Eureka(服务发现工具)
  8. 例题SQL语句详解-数据库基本操作11-排序分组联合
  9. VS将项目导出为exe
  10. [Javascript 高级程序设计]学习心得记录3 根据对象数组的属性进行排序