博客
关于我
String- 单词方阵
阅读量:548 次
发布时间:2019-03-09

本文共 853 字,大约阅读时间需要 2 分钟。

技术员编写的代码解析:

在给定的C代码中,我们可以看到它是一个用于二维字符匹配的程序。这个程序的主要功能是读取一个方阵的大小n,然后读取n个长度为n的字符串,并在其中找到字符串"yizhong"的所有起始位置,并将这些位置标记在book数组中。最终程序会输出标记和未标记的字符。

程序的核心是machining函数,它尝试在给定的位置(x, y)周围寻找"yizhong"的匹配。假设我们已经正确初始化了数组和函数,那么程序可以正常工作。现在我们从输入处理到输出处理的流程进行解析。

程序首先读取方阵的大小n,并处理回车符。接着,读取n个字符串,并将它们存储在二维数组a中。然后,使用一个char数组c存储"yizhong"。

接下来,程序使用book数组记录起始点和与之相连的"yizhong"字符的位置。通过遍历每一个字符(i, j),如果字符等于c[0],即'y',则调用machining函数。

在machining函数中,我们想要找到从(i, j)开始的"yizhong"。我们需要使用一个数组next来表示8个方向。对于每一个方向,我们沿着方向移动6步,并检查每一步的字符是否与c数组中的对应字符匹配。如果在移动6步过程中遇到字符不匹配或越界,则提前退出循环。

如果我们能够移动6步并且字符全部匹配,那么说明在(i, j)处存在"yizhong"。此时,我们需要标记起始点(i, j)以及接下来的6个字符位置到book数组中,以表示这些字符都是"yizhong"的部分。

在编写程序时要注意数组索引的问题,因为n可能会很大,但是在这个例子中,n的大小 limit 被正确处理。在输出阶段,我们检查book数组是否标记并输出相应的字符或星号。

虽然程序看起来正确,但需要注意数组越界的情况,并确保所有的字符都被正确处理。另外,在主函数中,我们调用machining函数的次数需要控制好,否则会导致性能问题。

总结来说,这段代码完成了一个简单的二维字符匹配任务,不过可以优化代码结构和错误处理部分。

转载地址:http://vvzsz.baihongyu.com/

你可能感兴趣的文章
OSI操作系统(NETBASE第八课)
查看>>
OSM数据如何下载使用(地图数据篇.11)
查看>>
OSPF 四种设备角色:IR、ABR、BR、ASBR
查看>>
OSPF 四种路由类型:Intra Area、Inter Area、第一、二类外部路由
查看>>
OSPF 学习
查看>>
OSPF 支持的网络类型:广播、NBMA、P2MP和P2P类型
查看>>
OSPF 概念型问题
查看>>
OSPF 的主要目的是什么?
查看>>
OSPF5种报文:Hello报文、DD报文、LSR报文、LSU报文和LSAck报文
查看>>
SQL Server 存储过程分页。
查看>>
OSPFv3:第三版OSPF除了支持IPv6,还有这些强大的特性!
查看>>
OSPF不能发现其他区域路由时,该怎么办?
查看>>
OSPF两个版本:OSPFv3与OSPFv2到底有啥区别?
查看>>
SQL Server 存储过程
查看>>
OSPF在什么情况下会进行Router ID的重新选取?
查看>>
OSPF在大型网络中的应用:高效路由与可扩展性
查看>>
OSPF太难了,这份OSPF综合实验请每位网络工程师查收,周末弯道超车!
查看>>
OSPF技术入门(第三十四课)
查看>>
OSPF技术连载10:OSPF 缺省路由
查看>>
OSPF技术连载11:OSPF 8种 LSA 类型,6000字总结!
查看>>