博客
关于我
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/

你可能感兴趣的文章
opencv源码查看
查看>>
OpenCV点目标检测未找到所有目标,并且找到的圆圈偏移
查看>>
opencv特征提取1-Harris角点检测
查看>>
OpenCV环境搭建(一)
查看>>
OpenCV的视频读取
查看>>
openCV目标识别 目标跟踪 YOLO5深度学习 Python 计算机视觉 计算机毕业设计 源码下载
查看>>
opencv笔记(1):图像缩放
查看>>
opencv笔记(二十四)——得到轮廓之后找到凸包convex hull
查看>>
OpenCV计算点到直线的距离 数学法
查看>>
Opencv识别图中人脸
查看>>
OpenCV读写avi、mpeg文件
查看>>
opencv里用calcCovarMatrix计算协方差矩阵
查看>>
OpenCV错误:在setSize中断言失败(s&>;=0)-尝试将图像放置在网络摄像头提要上时
查看>>
opencv面向对象设计初探
查看>>
OpenCV(1)读写图像
查看>>
OpenCV:不规则形状区域中每种颜色的像素数?
查看>>
OpenCV:概念、历史、应用场景示例、核心模块、安装配置
查看>>
OpenDaylight融合OpenStack架构分析
查看>>
OpenERP ORM 对象方法列表
查看>>
openEuler Summit 2022 成功举行,开启全场景创新新时代
查看>>