C语言打印表头的函数,C语言快速入门——使用函数重构ASCII码表输出

需求分析

输出ASCII码表是我们目前所编写的最复杂的程序,借函数的契机,我们将其函数化,以此更加深刻的理解函数的编码实现以及对于程序的有效组织。 对于新的函数实现,我们有如下要求:

函数可以指定输出的列数(最少1列,最多3列)

能够输出表头

能够防止错乱输出,即保持输出的整洁性。

程序结构清晰

根据以上需求,我们做一个简单的分析:

函数应该接受一个整数值,这个值代表输出的列数,我们需要对这个数值的有效性进行控制,这可以使用if语句控制。

表头输出可以作为一个独立的函数实现,也可以合并到整个输出函数中。

对于一些会引起输出表格错乱的字符,如换行符,我们需要特殊处理,这可能需要一个专门的函数。

因为函数至少要输出一列,所以我们可以先输出当前字符,再根据列数输出第二列、第三列字符。在这种输出方案下,if语句会减少,但程序逻辑结构会复杂。如果认为程序的清晰性更重要,则可以按列数独立输出。

实现

特殊字符处理

在输出的过程中,一些特殊的字符会影响表格输出的美观性,上一版中我们是把特殊的字符转换为空格,这次也一样,不过我们将此实现放在一个独立的函数中,以增加灵活性。

函数escape_check接收当前被处理的ASCII码,判断它是否需要特殊处理,如果是,则转换为空格,否则返回字符本身。如果不理解函数中数值的含义,可以查看ASCII表加深理解。

d10c3b5dd3ff53c3756b041bfd17e33e.png

输出表头

我们使用for循环语句输出表头,列之间有一个水平制表符间距,表头与ASCII表用短横线分隔。

6dffc3cd19eac36cf85ed3d6da798628.png

输出ASCII码表

下面的代码展示了两种可能的方案:

#1 使用一个for循环+多个if语句实现,缺陷就是每执行一次,循环就“停顿”一下。

#2 优先使用判断,循环执行的比较“流畅”。

9e9430c6072dc0c181c72ba607e41a2f.png

程序的源代码中包含了上述两种方案的具体实现,在这里我们则展示了代码最少方案。

e9c451dee180c95d205a31508ec0eabd.png

希望通过本节内容的学习,我们能掌握用函数组织程序的能力。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值